你好家伙我有我的代码有问题,我想获得字符串中最频繁的字母。这是我到目前为止已经试过:计算字符串中最频繁的字母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