class CounterDict<TKey>
{
public Dictionary<TKey, int> _dict = new Dictionary<TKey, int>();
public void Add(TKey key)
{
if(_dict.ContainsKey(key))
_dict[key]++;
else
{
_dict.Add(key, 1);
}
}
}
class Program
{
static void Main(string[] args)
{
string line = "The woods decay the woods decay and fall.";
CounterDict<string> freq = new CounterDict<string>();
foreach (string item in line.Split())
{
freq.Add(item.Trim().ToLower());
}
foreach (string key in freq._dict.Keys)
{
Console.WriteLine("{0}:{1}",key,freq._dict[key]);
}
}
}
我想計算一個字符串中所有單詞的出現次數。
我覺得上面的代碼將是緩慢的,在這個任務,因爲(考慮添加功能):如何計算文本文檔中所有單詞的頻率?
if(_dict.ContainsKey(key))
_dict[key]++;
else
{
_dict.Add(key, 1);
}
而且,保持_dict__
public
好的做法呢? (我不認爲是這樣。)
我應該如何修改或完全改變它來完成這項工作?
但是,「非字符串」鍵呢?我計劃將此擴展到其他關鍵類型。 – 2009-10-26 12:08:19
「或者還有非字符串的REGEX? :) – 2009-10-26 12:08:50
你是什麼意思'非字符串'? '\ w +'表示'[a-zA-Z_0-9]'(或'從A到Z的字母,下劃線和數字') – 2009-10-26 12:17:58