2016-03-25 17 views
0

我正在做類似的事情,用戶將輸入任何URL並獲取文本。從URL中統計出每個單詞的每一次出現的有效方法

然後文本將被解析,單詞將被計數。

我目前正在讀這篇文章從微軟: https://msdn.microsoft.com/en-us/library/bb546166.aspx

我現在可以得到的文本,目前我想嘗試的一種有效的方法來計算每字。

該文章示例需要搜索數據,但我需要搜索每個單詞而不是特定的單詞。

這裏是我的想法:

  1. 獲取文本,並將其轉換爲字符串
  2. 將它們分割(分隔符),並存儲在陣列遍歷數組
  3. 然後檢查它的每一個事件。

這會有效嗎?

+0

OOO好嗎謝謝 –

+0

乘坐看RegEx。這可以在一次調用中搜索整個頁面。 –

+0

爲什麼*效率*更重要?你每秒做數十億次? –

回答

1

使用LINQ

如果你有一個小的數據量可以做在空間分割,並創建一個組

var theString = MethodToGetStringFromUrl(urlString); 

var wordCount = theString 
        .Split(' ') 
        .GroupBy(a=>a) 
        .Select(a=>new { word = a.Key , Count = a.Count() }); 

看到fiddle更多的工作副本

一些實驗和結果

Messe d圍繞.NET撥弄一點點,使用Regexs實際上降低了性能並增加了內存使用量看here看什麼我談論

其他替代

因爲你所得到的請求從URL可能是更好的性能,將其轉換爲一個字符串,然後執行搜索前的數據流內搜索

不優化,除非你需要 爲什麼你需要找到一種高性能的方式做這個數字?你有沒有遇到任何問題,或只是想你,一個好的經驗法則是一般過早優化,以瞭解更多信息請查看這個問題很好的話題:When is optimisation premature?

相關問題