【发布时间】:2014-04-08 14:53:08
【问题描述】:
下午好,我有一段代码可以计算并显示用户输入中每个字母出现的次数。但我需要按字母顺序排列并显示出现频率最高的字母和该字母出现的次数:
package Assessment2;
import java.util.Scanner;
public class test2 {
String str = "Hello World", s = str;
int count = 0;
public void show() {
Scanner input = new Scanner(System.in);
System.out.print("Enter String: ");
String s = input.nextLine();
System.out.println("****************************");
while (s.length() > 0) {
count = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == s.charAt(0))
count++;
}
System.out.println(s.charAt(0) + ": " + count);
s = s.replace(String.valueOf(s.charAt(0)), "");
}
}
public static void main(String[] ar) {
new test2().show();
}
}
【问题讨论】:
-
看起来您的代码将无限循环,同时尝试仅计算输入的第一个字符出现在输入中的次数。到目前为止,您尝试过什么对其进行排序并显示频率和计数?
-
同意mike B,你的代码远非你描述的那样......
-
当它运行时,我得到以下输入字符串:kjb jkn **************************** k: 2 j: 2 b: 1 : 1 n: 1
-
这似乎不太可能,因为您在打印 ****s 后从未打印任何内容。
-
我尝试了 sort + Collator,但没有成功。 @Mike 结果在 Eclipse 的控制台窗口中,我 5 分钟前刚刚运行。
标签: java