你好傢伙我有我的代碼有問題,我想獲得字符串中最頻繁的字母。這是我到目前爲止已經試過:計算字符串中最頻繁的字母Java
String s = "Sashimi";
int highestFreq = 0;
char mostFreqChar = ' ';
for (int i = 0; i < s.length(); i++)
{
char x = s.charAt(i);
int c = 0;
for (int j = s.indexOf(x); j != -1; j = s.indexOf(x, j + 1))
{
c++;
}
if (c > highestFreq)
{
highestFreq = c;
mostFreqChar = x;
}
}
System.out.println("Most frequent character in " + s + " is " + mostFreqChar);
}
然而,它只是顯示字母「I」,但在我的例子上面的字符串是生魚片。所以有兩個最常見的字母,即S和I.我的代碼有什麼問題?任何幫助將不勝感激。謝謝。
考慮一個'地圖<字符,整數>' – user2864740 2014-09-06 03:03:39
@ user2864740你可以做的一些樣品?我是一個新手謝謝。 – 2014-09-06 03:05:20
請參閱http://stackoverflow.com/questions/4327226/highest-frequency-of-letters-in-each-line-of-file-core-java-programming?rq=1等 - 使用「重複「問題是一個相似的原則;首先製作計數桶(例如字符 - >計數),然後查找計數最高的密鑰。 – user2864740 2014-09-06 03:07:05