发布日期:2018-03-26
如何计算字符串中字符串的出现次数?+ 查看更多
如何计算字符串中字符串的出现次数?
+ 查看更多
发布日期:2018-02-23 15:54
分类:C#
浏览次数:121
我正在做一些事情,我意识到我想计算出在一个字符串中我可以找到多少/,然后它触动了我,有几种方法来做,但不能决定什么是最好的(或最简单的)。
目前我正在进行如下事情:
目前我正在进行如下事情:
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 == '/');
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次迭代,所以你不太可能在现实世界中看到很多差异。)