C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?
C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?这是一个很常见的命题,以前也没有注意,今天QQ群里有人提起,于是就做了下试验,代码如下:
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?的更多相关文章
- js查询字符串是否包含指定字符的函数indexOf
今天用到了js的函数indexOf来查看字符串中是否包含指定的字符,最开始没注意看,就拿来用了,结果用的时候才发现,IndexOf的返回值原来是字符在字符串中的index,返回值有0.1等等,如果没有 ...
- jQuery动态添加的元素中处理字符串溢出后在指定字符数后添加省略号
"+[jsonData[i].questitle.lenth>40?jsonData[i].questitle.substring(0,40)+"...":json ...
- 你如何获取浏览器URL中查询字符串中的参数?
测试地址为:http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23 实例如下: ...
- 请用js写一个函数,实现获取浏览器url中查询字符串中的参数并返回一个数组
<script> console.log(getUrlArr()); function getUrlArr() { var arr = []; var url = "http:/ ...
- 获取浏览器URL中查询字符串中的参数
//http://www.runoob.com/index.html?name=xiaoming&age=23function showWindowHref(){ var sHref = wi ...
- 【错误】jsp查询字符串中空格导致的异常问题!
jsp中查询字符串中空格问题 jsp中查询字符串中参数名的等号右边最好不要出现空格,因为编译器会把他当做是参数值得一部分. 例如: <a href="adjust.jsp?number ...
- SQL中判断字符串中包含字符的方法
通过2个函数CHARINDEX和PATINDEX以及通配符的灵活使用 函数:CHARINDEX和PATINDEX CHARINDEX:查某字符(串)是否包含在其他字符串中,返回字符串中指定表达式的起始 ...
- 如何获取浏览器URL中查询字符串的参数?
如何获取浏览器URL中查询字符串的参数? 想要知道怎样解决这个问题,首先我们先认识一下Location对象. Location对象包含了当前页面与位置(url)相关的信息 URL示例:http://w ...
- 如何获取浏览器URL中查询字符串的参数
首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...
随机推荐
- Android UID and PID
Android UID and PID 我们经常在一个activity中去start另一个activity,或者与另一个acitivity的结果进行交互 (startActivityForResult ...
- 《Drools7.0.0.Final规则引擎教程》第4章 4.2 ruleflow-group&salience
ruleflow-group 在使用规则流的时候要用到ruleflow-group属性,该属性的值为一个字符串,作用是将规则划分为一个个的组,然后在规则流当中通过使用ruleflow-group属性的 ...
- 打造属于自己的安卓menu
首先,我们来看看这张图吧 看下面的menu菜单,是原装的菜单,好丑陋哦,类似于小编这么爱美的人来说,纯粹就是天大的打击,接受不起.于是,小编就发奋图强,努力,努力,再努力,终于,将菜单改的漂亮了一点, ...
- Django应用部署
前言 Apachewsgi 环境搭建 安装Apache 安装mod_wsgi 添加djangowsgi文件 配置etcapache2httpdconf wsgipy配置 跑起来吧 uWSGI 环境搭建 ...
- I.MX6 recovery mode hacking
/******************************************************************************** * I.MX6 recovery m ...
- [QT]安装中出现的问题(安装qt5.8,出现Could not start:"{0,3010,1603,5100} msiexec ...")
安装环境:win7/10 qt版本: qt-opensource-windows-x86-mingw530-5.8.0 在两台电脑上安装到 qt.tool.perl 的时候就弹出如图的窗口错误,开始以 ...
- 【学习】JennyHui学英语 - Bingo口语笔记
学习素材:Bingo说美语 Hold系列 如何吞音 表示“无所谓” Pick系列 英式和美式英语的发音区别 表示“迷茫” Break系列 爆破音发音技巧 表示“不相信” 常见词汇的缩读 表示“身体抱恙 ...
- IntelliJ IDEA 安装破解详解
https://github.com/tengj/IntelliJ-IDEA-Tutorial IntelliJ IDEA官方中文文档 https://blog.csdn.net/newabcc/ar ...
- 数据库模型类转换实体类的dbToPojoUtil工具类开发
idea颜色说明http://blog.csdn.net/saindy5828/article/details/53319693 1,中途运用了properties,properties.getPro ...
- 如何用php+ajax实现页面的局部刷新?(转)
client.html XML/HTML code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <!DOCTYPE ...