Вот как вы делаете задачу. Он подсчитывает количество строчных букв и печатает звезды в дополнение к частоте, как вы и хотели.
Вот общий код (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.
Надеюсь, это поможет! Если у вас возникли проблемы, просто прокомментируйте ниже.