C#判断字符串中是否包含指定字符串及contains与indexof方法效率问题

发布日期:2019-11-24 作者:mi52.com 人气:

方法一:使用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千万次,输出所用时间;



3、总结

从测试结果(大量测试)中能明显看出,当拥有大量英文的字符串中:

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

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

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


来源:https://www.jb51.net/article/148792.htm

返回顶部

拨打电话
首页