【发布时间】:2017-11-18 20:05:17
【问题描述】:
我需要找到一种算法来计算任何字符串中的字母(例如“cababbabb”),并且输出必须按字母顺序排列(例如 a: 3, b: 4, c:1 等)。无需区分大小写字母。我不允许你使用 HashMap。
到目前为止,这是我的代码:我不工作,我认为我在这里的策略错误。你能帮帮我吗?
public class Stringray extends MiniJava{
public static void main(String[] args) {
// Texteingabe
String input = readString("Geben Sie einen Text ein: ");
String output = "";
int i = 0;
// Häufigkeit der Buchstaben
int count = 0;
char letter = 'a';
while(i < input.length()) {
while(i < input.length()) {
if(input.charAt(i) == letter) {
while(i < input.length()) {
count++;
i++;
}
output = output + letter + ": " + count + "\t";
}
i++;
}
letter++;
}
write(output);
}
}
【问题讨论】:
-
您的代码不起作用,因为您首先对所有 3 个循环使用相同的索引。另外,既然您希望对输出进行排序,为什么不在即将更改为“更高”字符时对打印的字符进行排序并运行线性扫描?