首页 新闻 会员 周边 捐助

C#中统计某个字符出现次数的最简单方法

0
悬赏园豆:30 [已解决问题] 解决于 2013-09-16 08:01

C#中统计一个字符串中某个字符出现的次数的最简单方法是什么?

比如字符串是这样的:

var text = "http://www.cnblogs.com;http://q.cnblogs.com;http://home.cnblogs.com;http://job.cnblogs.com";

统计一下其中"://"出现的次数。

C#
问题补充:

哪个方法耗时最少,园豆就归他

dudu的主页 dudu | 高人七级 | 园豆:29759
提问于:2013-09-15 20:41
< >
分享
最佳答案
3

int count=(text.Length-text.Replace("://","").Lenght)/"://".Lenght;

收获园豆:20
甲_乙_丙_丁 | 小虾三级 |园豆:804 | 2013-09-15 20:52

这个思路有创意

dudu | 园豆:29759 (高人七级) | 2013-09-15 20:55

@dudu: 再简化一下:

int count=text.Length-text.Replace("://","//").Lenght;

一个替换,一个减运算

甲_乙_丙_丁 | 园豆:804 (小虾三级) | 2013-09-15 21:01

经测试这个执行速度超正则表达式

dudu | 园豆:29759 (高人七级) | 2013-09-15 21:02

@dudu: 

第一个还是第二个 ? 如果是第二个理论上更快,因为少了一个除法运算。

甲_乙_丙_丁 | 园豆:804 (小虾三级) | 2013-09-15 21:04

@江湖再见: 测试下来第1个更快一些,第2个速度不是很稳定

dudu | 园豆:29759 (高人七级) | 2013-09-15 21:16

@江湖再见: 赞!

wj704 | 园豆:170 (初学一级) | 2013-09-15 21:28

@江湖再见: 这个方法不错。赞一个。

````` | 园豆:14268 (专家六级) | 2013-09-15 21:33

@imfunny: 

dudu说效率不稳定。

甲_乙_丙_丁 | 园豆:804 (小虾三级) | 2013-09-15 21:58

@江湖再见: 这种不稳定可以忽略不计

dudu | 园豆:29759 (高人七级) | 2013-09-15 22:00

@江湖再见:  定义常量,估计更高。。。总的来说很不错了,刚还真没想到这个特性,思考了三十秒才发现的确很赞。

````` | 园豆:14268 (专家六级) | 2013-09-15 22:02
其他回答(1)
0

"..dasdasd...dasda..dadasd".Where(x => x == '.').Count()

碌云 | 园豆:212 (菜鸟二级) | 2019-02-11 16:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册