亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

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

2019-10-29 19:58:34
字體:
來源:轉載
供稿:網友

正文

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

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

 string key = "bbb"; string temp = "aaaBBBcccDDD"; bool isContains= temp.ToLower().Contains(key.ToLower());//true

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

  使用string.Index方法,然后通過StringComparison.OrdinalIgnoreCase指定查找過程忽略大小寫;

 string key = "bbb"; string temp = "aaaBBBcccDDD"; bool isContains = temp.IndexOf(key,StringComparison.OrdinalIgnoreCase)>=0;//true

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

1、測試代碼:

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

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

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_

 

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方法效率問題,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av影片在线观看| 日韩在线观看免费全集电视剧网站| 日本精品久久中文字幕佐佐木| 亚洲美女精品成人在线视频| 欧美激情国产精品| 国产精品一区二区三区免费视频| 亚洲第一区中文字幕| 亚洲性日韩精品一区二区| 久久人体大胆视频| 成人网欧美在线视频| 中文字幕日本精品| 亚洲色图25p| 蜜月aⅴ免费一区二区三区| 久热精品视频在线免费观看| 欧美日韩国产影院| 在线观看91久久久久久| 亚洲成人av片| 亚洲成人精品在线| 亚洲欧美日韩中文在线| 91在线高清免费观看| 亚洲xxx大片| 91理论片午午论夜理片久久| 97精品一区二区视频在线观看| www.欧美精品| 欧美一二三视频| 国产精品成人va在线观看| 欧美国产第二页| 亚洲精选中文字幕| 日韩美女中文字幕| 亚洲精品国精品久久99热一| 欧美亚洲另类制服自拍| 夜夜狂射影院欧美极品| 欧美激情在线一区| 九九精品在线观看| 欧美成人手机在线| 91国产美女在线观看| 国产精品一区二区久久久| 秋霞成人午夜鲁丝一区二区三区| 最近中文字幕2019免费| 亚洲精选在线观看| 国产精品精品视频一区二区三区| 亚洲新声在线观看| 日本a级片电影一区二区| 一色桃子一区二区| 在线电影中文日韩| 久久99精品久久久久久青青91| 日韩电影大全免费观看2023年上| 亚洲女同性videos| 日韩福利视频在线观看| 国产精品久久久久免费a∨| 成人欧美一区二区三区黑人| 91精品久久久久久久久久久久久久| 亚洲色图第一页| 日本精品久久久久久久| 久久人人爽人人爽人人片亚洲| 日韩精品免费在线视频| 成人中心免费视频| 欧美床上激情在线观看| 亚洲aa在线观看| 欧美丰满片xxx777| 亚洲天堂日韩电影| 国产69精品久久久| 91伊人影院在线播放| 中日韩美女免费视频网站在线观看| 日韩精品日韩在线观看| 日韩精品视频在线播放| 国产成人在线亚洲欧美| 国内外成人免费激情在线视频| 午夜精品福利电影| 久久久久久噜噜噜久久久精品| 日韩电影在线观看中文字幕| 亚洲精品久久久久国产| 亚洲国产精品电影在线观看| 精品久久久久久久久国产字幕| 一区二区三区在线播放欧美| 久久久在线视频| 欧美有码在线观看| 亚洲欧美一区二区三区久久| 亚洲综合小说区| 日韩高清电影好看的电视剧电影| 国模叶桐国产精品一区| 亚洲欧洲高清在线| 国产精品香蕉在线观看| 国产成人高清激情视频在线观看| 欧美中文字幕精品| 亚洲三级 欧美三级| 久久精品国产成人| 成人免费看吃奶视频网站| 自拍视频国产精品| 亚洲老头老太hd| 综合国产在线视频| 欧美精品999| 亚洲一区二区中文| 国产成人精品免高潮费视频| 国产一区二区三区在线播放免费观看| 国自产精品手机在线观看视频| 亚洲欧美中文在线视频| 91精品国产91久久久久久最新| 乱亲女秽乱长久久久| 欧美综合第一页| 精品日韩美女的视频高清| 国产在线视频不卡| 国产日韩精品在线观看| 久久精品国产综合| 亚洲日本中文字幕| 久久精品在线播放| 欧美成人三级视频网站| 欧美肥老太性生活视频| 国产成人精品视频在线观看| 8x海外华人永久免费日韩内陆视频| 91精品久久久久久久| 91爱视频在线| 91极品女神在线| 午夜精品久久久99热福利| 丝袜亚洲欧美日韩综合| 亚洲国产精品系列| 精品国产一区二区三区久久狼5月| 国产精品亚洲欧美导航| 午夜精品一区二区三区在线视频| 97精品久久久中文字幕免费| 97色在线观看免费视频| 91久久久国产精品| 91美女高潮出水| 亚洲色图35p| 欧美最猛性xxxxx(亚洲精品)| 亚洲精品98久久久久久中文字幕| 国产91精品久久久久久| 亚洲xxxx妇黄裸体| 精品久久久久久电影| 久久久久久久国产| 亚洲一区二区三区久久| 色噜噜狠狠色综合网图区| 亚洲美女av电影| 91老司机在线| 欧美电影免费观看电视剧大全| 亚洲无线码在线一区观看| 久久亚洲精品国产亚洲老地址| 亚洲图片制服诱惑| 欧美性xxxx18| 欧美在线免费视频| 午夜精品久久久久久久男人的天堂| 日韩在线播放视频| 国产精品自产拍在线观看| 亚洲精品98久久久久久中文字幕| 欧美精品日韩www.p站| 欧美性猛交xxxx黑人| 日韩免费在线播放| 另类图片亚洲另类| 欧美野外wwwxxx| 一区二区在线视频| 欧美wwwwww| 久久影院资源站| 日韩av网站导航| 永久免费毛片在线播放不卡| 奇米4444一区二区三区| 国产精品电影一区| 国产91精品视频在线观看| 欧美成人激情在线| 国产男女猛烈无遮挡91| 欧美国产亚洲视频| 国产精品狠色婷| 91av免费观看91av精品在线| 久久精品最新地址| 一区二区亚洲精品国产|