Поскольку это звучит как домашнее задание, давайте попробуем разобраться, как решить эту проблему вручную. Как только мы это сделаем, давайте посмотрим, как мы можем попытаться реализовать это в коде.
Что нужно сделать?
Давайте возьмем следующую строку:
it is nice and sunny today.
Чтобы подсчитать, сколько раз каждый символ появляется в приведенной выше строке, мы должны:
- Итерация по каждому символу строки
- Вести подсчет того, сколько раз каждый символ в строке появляется
Как бы мы это попробовали?
Выполнение этого вручную может быть таким:
Сначала мы находим новый символ i
, поэтому мы можем заметить, что в таблице и сказать, что i
появился 1 раз до сих пор:
'i' -> 1
Во-вторых, мы находим еще одного нового персонажа t
, поэтому мы можем добавить его в таблицу выше:
'i' -> 1
't' -> 1
В-третьих, пробел и повторите еще раз ...
'i' -> 1
't' -> 1
' ' -> 1
В-четвертых, мы встречаем i
, которое уже существует в таблице. Итак, мы хотим получить существующее количество и заменить его существующим количеством + 1:
'i' -> 2
't' -> 1
' ' -> 1
и т. Д.
Как перевести в код?
Переводя вышеприведенное в код, мы можем написать что-то вроде этого:
- Для каждого символа в строке
- Проверьте, встречался ли персонаж уже
- Если нет, то запомните нового персонажа и скажите, что мы встречались с ним один раз
- Если да, то возьмите количество раз, с которым оно встречалось, и увеличьте его на единицу
Для реализации, как уже упоминалось, использование цикла и Map
может достичь того, что нужно.
Цикл (такой как цикл for
или while
) может использоваться для перебора символов в строке.
Map
(например, HashMap
) можно использовать для отслеживания того, сколько раз персонаж появлялся. В этом случае клавиша будет символом, а значение будет подсчитывать, сколько раз появляется символ.
Удачи!