[英]Characters counting
它很奇怪,我需要從文件中計算字符數,並且在以后的計算中使用該信息,現在是奇怪的部分,我想檢查我的程序是否正確計算了每個字符的出現,所以我將我的結果與來自 ctrl+ 的 monodevelop 匹配進行了比較f 例如對於“i”字符,我的結果是518
monodevelop 有561
匹配項(區分大小寫),所以可能看起來我的程序計算得不好,但我進行了測試並將其重寫到另一個文件並再次檢查匹配項mono develop 現在我的結果和 monodevelop 匹配相同。 為什么會這樣?
這是代碼
public Histogram (String nazwa)
{
histogram = new Dictionary<string,float>();
StringBuilder plik = odczytPliku.odczyt(nazwa);
n = 0;
foreach(char w in plik.ToString())
{
if(!histogram.ContainsKey(new string(w,1)))
histogram.Add(new string(w,1),1);
else
histogram[new string(w,1)]+=1;
n++;
}
}
以下代碼將創建字符串中字符的直方圖。 這假設您正確地傳遞了字符串。
public Dictionary<char,int> Histogram( String myString )
{
Dictionary<char,int> hist = new Dictionary<char,int>()
if( !String.IsNullOrEmpty(myString) )
{
for( int i = 0; i < myString.Length; i++ )
{
char c = myString[i];
if(hist.ContainsKey(c))
{
hist[c] = hist[c] + 1;
}
else
{
hist.Add(c,1);
}
}
}
return hist;
}
public Dictionary<char, int> Hist(string target)
{
return target.GroupBy(c => c)
.ToDictionary(g => g.Key, g => g.Count());
}
要使其不區分大小寫,只需像這樣調用它:
var hist = Hist(target.ToUpperInvariant());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.