В методе countLetters
цикл for
проходит через все символы в строке. if
проверяет, чтобы убедиться, что это буква, иначе она будет проигнорирована.
line.charAt()
возвращает один символ в позиции i. Тип этого char
.
Теперь глубоко в Java символ представляет собой просто число, соответствующее коду символа. Строчные буквы «a» имеют код символа 97, «b» - 98 и т. Д. (int)
преобразование силы из char
в int
. Итак, мы берем код символа, допустим, что это «b», поэтому код равен 98, и мы вычитаем код для «a», который равен 97, поэтому мы получаем смещение 1 (от начала алфавита). Для любой буквы в алфавите смещение будет между 0 и 25 (включительно).
Таким образом, мы используем это смещение в качестве индекса в массиве count
и используем ++
для его увеличения. Затем в цикле в верхней части программы можно распечатать отсчеты.
Цикл вверху использует обратный «трюк» для преобразования этих смещений от 0 до 25 обратно в буквы от a до z.