C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?
2014-05-19 17:26
661 查看
C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?这是一个很常见的命题,以前也没有注意,今天QQ群里有人提起,于是就做了下试验,代码如下:
得到的结果是:
目标为第一个字符时:
Contains: 973ms
IndexOf: 1343ms
目标为中部某个字符时:
Contains: 1813ms
IndexOf: 8602ms
目标为最后一个字符时:
Contains: 1433ms
IndexOf: 5094ms
执行完毕,按任意键退出...
可以看出,使用Contains方法的效率比IndexOf的效率高很多。
using System; using System.Diagnostics; namespace ConsoleApplication1 { class Program { private const int N = 10000000; private static Stopwatch watch = new Stopwatch(); static void Main(string[] args) { string source = "abcdefghijklmnopqrstuvwxyz0123456789C#" + "中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?.uonun"; string target = "a"; Console.WriteLine("目标为第一个字符时:"); TestContains(source, target); TestIndexOf(source, target); Console.WriteLine(); Console.WriteLine("目标为中部某个字符时:"); target = "中"; TestContains(source, target); TestIndexOf(source, target); Console.WriteLine(); Console.WriteLine("目标为最后一个字符时:"); target = "u"; TestContains(source, target); TestIndexOf(source, target); Console.WriteLine("执行完毕,按任意键退出..."); Console.ReadKey(); } private static void TestIndexOf(string source, string target) { watch.Reset(); watch.Start(); for (int i = 0;i < N;i++) { source.IndexOf(target); } watch.Stop(); Console.WriteLine("IndexOf: " + watch.ElapsedMilliseconds.ToString() + "ms"); return; } private static void TestContains(string source, string target) { watch.Reset(); watch.Start(); for (int i = 0;i < N;i++) { source.Contains(target); } watch.Stop(); Console.WriteLine("Contains: " + watch.ElapsedMilliseconds.ToString() + "ms"); return; } } }
得到的结果是:
目标为第一个字符时:
Contains: 973ms
IndexOf: 1343ms
目标为中部某个字符时:
Contains: 1813ms
IndexOf: 8602ms
目标为最后一个字符时:
Contains: 1433ms
IndexOf: 5094ms
执行完毕,按任意键退出...
可以看出,使用Contains方法的效率比IndexOf的效率高很多。
相关文章推荐
- C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?
- C#中查询字符串中是否包含指定字符/字符串,使用IndexOf还是Contains?
- js查询字符串是否包含指定字符的函数indexOf
- C#判断字符串中是否包含一个子字符串是可以直接使用Contains()方法
- C# 中判断字符串是否包含另一段字符串,请使用 Contains
- asp.net 中查询字符串中是否包含指定字符/串
- String 是否包含该字符串,使用 contains 和 indexOf 的区别
- JS判断字符串是否包含某字符串 indexOf()方法使用
- 一种不使用字符串检验一个整数是否包含一个整数的c#实现方法
- js 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
- c# 判断字符是否是全角, 获取字符串的字节数 , 获取字符串指定长度字节数的字符串
- js 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
- js javascript 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
- 《Python CookBook2》 第一章 文本 - 检查字符串中是否包含某字符集合中的字符 && 简化字符串的translate方法的使用
- [转载]js javascript 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
- JS判断字符串是否包含某字符串 indexOf()方法使用
- Array查询数组中是否包含指定字符
- (非常小的技巧)利用范型List存储数据并通过Contains查询字符串是否包含在范型中
- javascript 判断字符串是否包含某字符串及indexOf使用示例
- javascript 判断字符串是否包含某字符串及indexOf使用示例