亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何計算字符串中出現的字符串(實際上是字符)?

如何計算字符串中出現的字符串(實際上是字符)?

C#
九州編程 2019-06-11 21:01:27
我正在做一件事,我意識到我想數一數/我可以從一根繩子里找到,然后突然想到,有幾種方法可以做到,但我無法決定什么是最好的(或最簡單的)?,F在我要說的是:string source = "/once/upon/a/time/";int count = source.Length - source.Replace("/", "").Length;但我一點也不喜歡,有人嗎?我真的不想挖出來RegEx為了這個,是嗎?我知道我的弦會有我要找的術語,所以你可以假設.當然是弦樂哪里 長度>1,string haystack = "/once/upon/a/time";string needle = "/";int needleCount = ( haystack.Length - haystack.Replace(needle,""). Length ) / needle.Length;如何計算字符串中出現的字符串(實際上是字符)?
查看完整描述

3 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

如果您使用的是.NET 3.5,您可以使用LINQ在一個一行程序中這樣做:

int count = source.Count(f => f == '/');

如果不想使用LINQ,可以使用:

int count = source.Split('/').Length - 1;

你可能會驚訝地發現,你的原始技術似乎比這兩種技術都快了30%!我剛剛完成了“/一次性/on/a/time/”的快速基準測試,結果如下:

你原來的=12S
來源:Count=19s
來源:Split=17s
前程(從Bobwienholt的回答)=10S

(時間是5000萬次迭代,所以你不太可能注意到現實世界中的差異。)


查看完整回答
反對 回復 2019-06-11
?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

int count = new Regex(Regex.Escape(needle)).Matches(haystack).Count;


查看完整回答
反對 回復 2019-06-11
  • 3 回答
  • 0 關注
  • 463 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號