簡體   English   中英

字符計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM