【C#】判断字符串中是否包含指定字符串,contains与indexOf方法效率问题

方法一:使用string.Contains方法

  string.Contains是大小写敏感的,如果要用该方法来判断一个string是否包含某个关键字keyword,需要把这个string和这个keyword都转成小写或大写再调用Contains方法;

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

方法二:使用sring.IndexOf方法

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

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

总结

当拥有大量英文的字符串中:

  *当不区分大小写时,string.IndexOf方法的效率明显高于string.Contains方法;

  *当区分大小写时,string.Contains方法的效率明显高于string.IndexOf方法;

  *如果判断的是中文,没有大小写之分,还是string.Contains方法的效率高;

原文地址:https://www.cnblogs.com/Swaggy-yyq/p/14777084.html