1 回答
TA贡献1810条经验 获得超4个赞
这就是你完成任务的方式。它会计算小写字母的数量并打印除频率之外的星星,就像您想要的那样。
这是一般代码(paragraph是包含文件内容的字符串):
int[] lettercount = new int[26];
for(int i = 0; i < 26; i++){
//Set every single number in the array to 0.
lettercount[i] = 0;
}
for(char s : paragraph.toCharArray()){
int converted = (int) s;
converted -= 97;
if(converted >=0 && converted <=25){
lettercount[converted] += 1;
}
}
//Print out the letter with the frequencies.
for(int i = 0; i < 26; i++){
char convertback = (char) (i+97);
String stars = "";
for(int j = 0; j < lettercount[i]; j++){
stars += "*";
}
System.out.println(convertback + " " + stars + " - " + lettercount[i]);
}
这应该适用于小写字母。如果你想做大写字母,lettercount[]应该是52个元素长。您还必须检查是否converted (在第二个 for 循环中),减去 97 后是否为负数,如果是,则加回 58。
我希望这有帮助!如果您有任何问题,请在下面发表评论。
添加回答
举报