国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C#判斷字符串中是否包含指定字符串及contains與indexof方法效率問題

C#判斷字符串中是否包含指定字符串及contains與indexof方法效率問題

2022-03-02 14:16willingtolove C#

這篇文章主要介紹了C#判斷字符串中是否包含指定字符串及contains與indexof方法效率問題 ,文中給大家列舉通過兩種方法來判斷,需要的朋友可以參考下

正文

 #方法一:使用string.contains方法

  string.contains是大小寫敏感的,如果要用該方法來判斷一個string是否包含某個關鍵字keyword,需要把這個string和這個keyword都轉成小寫或大寫再調用contains方法;

?
1
2
3
string key = "bbb";
string temp = "aaabbbcccddd";
bool iscontains= temp.tolower().contains(key.tolower());//true

#方法二:使用sring.index方法

  使用string.index方法,然后通過stringcomparison.ordinalignorecase指定查找過程忽略大小寫;

?
1
2
3
string key = "bbb";
string temp = "aaabbbcccddd";
bool iscontains = temp.indexof(key,stringcomparison.ordinalignorecase)>=0;//true

 #那什么時候使用contains方法,什么時候使用index方法,哪個效率高?

1、測試代碼:

  注:此測試針對的是擁有大量英文的情況下,并且指定的字符串為英文

  每個方法測試1千萬次,輸出所用時間;

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
class program
  {
    private const int n = 10000000;
    private static stopwatch watch = new stopwatch();
    static void main(string[] args)
    {
      string source = "aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqq";
      string target = "aaa";
      console.writeline("目標在開頭部分時:");
      console.writeline("不區分大小寫:");
      testcontains(source, target,true);
      testindexof(source, target,true);
      console.writeline("區分大小寫:");
      target = "aaa";
      testcontains(source, target,false);
      testindexof(source, target,false);
      console.writeline();
      console.writeline("目標在中部時:");
      console.writeline("不區分大小寫:");
      target = "hhh";
      testcontains(source, target, true);
      testindexof(source, target, true);
      console.writeline("區分大小寫:");
      target = "hhh";
      testcontains(source, target, false);
      testindexof(source, target, false);
      console.writeline();
      console.writeline("目標在結尾時:");
      console.writeline("不區分大小寫:");
      target = "qqq";
      testcontains(source, target,true);
      testindexof(source, target,true);
      console.writeline("區分大小寫:");
      target = "qqq";
      testcontains(source, target,false);
      testindexof(source, target,false);
      console.writeline("執行完畢,按任意鍵退出...");
      console.readkey();
    }
    private static void testindexof(string source, string target,bool isignorecase)
    {
      watch.reset();
      watch.start();
      for (int i = 0; i < n; i++)
      {
        if (isignorecase)
          source.indexof(target, stringcomparison.ordinalignorecase);
        else
          source.indexof(target);
      }
      watch.stop();
      console.writeline("indexof: " + watch.elapsedmilliseconds.tostring() + "ms");
      return;
    }
    private static void testcontains(string source, string target,bool isignorecase)
    {
      watch.reset();
      watch.start();
      for (int i = 0; i < n; i++)
      {
        if (isignorecase)
          source.tolower().contains(target.tolower());
        else
          source.contains(target);
      }
      watch.stop();
      console.writeline("contains: " + watch.elapsedmilliseconds.tostring() + "ms");
      return;
    }
  }

2、測試結果:

C#判斷字符串中是否包含指定字符串及contains與indexof方法效率問題

3、總結

  1、從測試結果(大量測試)中能明顯看出,當擁有大量英文的字符串中:

  *當不區分大小寫時,string.indexof方法的效率明顯高于string.contains方法;

  *當區分大小寫時,string.contains方法的效率明顯高于string.indexof方法;

  *如果判斷的是中文,沒有大小寫之分,還是string.contains方法的效率高;

  2、綜合上述總結,定義了一個string擴展方法,該方法包含一個stringcomparison參數,返回值為是否包含子字符串:

    參考:https://docs.microsoft.com/zh-cn/dotnet/api/system.string.contains?redirectedfrom=msdn&view=netframework-4.5#system_string_contains_system_string_

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using system;
 public static class stringextensions
 {
   public static bool contains(this string str, string substring,
                 stringcomparison comp)
   {             
    if (substring == null)
      throw new argumentnullexception("substring",
                     "substring cannot be null.");
    else if (! enum.isdefined(typeof(stringcomparison), comp))
     throw new argumentexception("comp is not a member of stringcomparison",
                   "comp");
    return str.indexof(substring, comp) >= ;          
  }
 }
 
using system;
public class example
{
  public static void main()
  {
   string s = "this is a string.";
   string sub1 = "this";
   console.writeline("does '{0}' contain '{1}'?", s, sub1);
   stringcomparison comp = stringcomparison.ordinal;
   console.writeline("  {0:g}: {1}", comp, s.contains(sub1, comp));
   comp = stringcomparison.ordinalignorecase;
   console.writeline("  {0:g}: {1}", comp, s.contains(sub1, comp));
  }
}
// the example displays the following output:
//    does 'this is a string.' contain 'this'?
//     ordinal: false
//     ordinalignorecase: true

總結

以上所述是小編給大家介紹的c#判斷字符串中是否包含指定字符串及contains與indexof方法效率問題,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

原文鏈接:https://www.cnblogs.com/willingtolove/p/9782533.html

延伸 · 閱讀

精彩推薦
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日本久久成人 | 国产欧美精品一区二区三区四区 | 欧美午夜精品久久久久久浪潮 | 久久99精品久久久久久国产越南 | 九九av | 一本大道伊人久久综合 | 香蕉久久夜色精品国产使用方法 | 天堂av一区 | 三级在线观看网站 | 最近免费观看高清韩国日本大全 | 国产成人精品亚洲日本在线观看 | 欧美狠狠操 | 交视频在线观看国产 | 国产成人三区 | 91在线资源 | 久久99精品视频 | 午夜精品一区二区三区在线播放 | 亚洲欧美高清 | 亚洲国产精品99久久久久久久久 | 色av中文字幕 | 欧美午夜一区二区三区免费大片 | 欧美日韩亚洲二区 | 欧洲黄色 级黄色99片 | 久久精品国产亚洲一区二区三区 | 免费网站在线 | 日韩精品视频一区二区三区 | 成人在线精品 | 精品无人乱码一区二区三区的优势 | 亚洲精品专区 | 91精品国产综合久久久久久丝袜 | 国产精品射| 久久久久久久久一区二区三区 | 久久久www成人免费无遮挡大片 | 欧美一区二区三区精品 | 国产99久久精品 | 国产在线视频一区二区 | 高清一区二区三区视频 | av成人免费 | 亚洲专区中文字幕 | 免费看黄在线 | 在线播放亚洲 |