好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
如何计算字符串中字符串的出现次数? 关闭 返回上一级  

如何计算字符串中字符串的出现次数?
+ 查看更多

发布日期:2018-02-23 15:54
分类:C#
浏览次数:102
我正在做一些事情,我意识到我想计算出在一个字符串中我可以找到多少/,然后它触动了我,有几种方法来做,但不能决定什么是最好的(或最简单的)。
目前我正在进行如下事情:
string source = "/once/upon/a/time/";
int count = source.Length - source.Replace("/", "").Length;

但我根本不喜欢它,任何一个替代品都行?
我真的不想深入了解这个正则表达式,我会吗?
我知道我的字符串中有我正在寻找的词,所以你可以假设...
当然,是对于长度> 1的字符串
string haystack = "/once/upon/a/time";
string needle = "/";
int needleCount = ( haystack.Length - source.Replace(needle,"").Length ) / needle.Length
 
回答:
 
如果你使用的是.NET 3.5,你可以使用LINQ在一个单行程中执行此操作:
int count = source.Count(f => f == '/');
如果不想使用LINQ,可以使用:
int count = source.Split('/').Length - 1;
你可能会惊讶地发现,你的原始技术似乎比任何一种都快了约30%!我刚刚用“/ once / upon / a / time /”做了一个快速的基准测试,结果如下:
Your original = 12s
source.Count = 19s
source.Split = 17s
foreach (from bobwienholt's answer) = 10s
(时间是50,000,000次迭代,所以你不太可能在现实世界中看到很多差异。)
上一篇LINQ中的分组
如何按值对字典排序?下一篇
下一篇如何按值对字典排序?

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号