Всем доброго времени суток!
Завожу 10 слов, программа считает буквы правильно (по крайней мере я не нашел ошибок в подсчете ею символов).
Вывод соответствует ТЗ:
1. Программа должна выводить текст на экран - она его выводит
2. Выведенный текст должен содержать 33 строки - он их содержит, ровненько 33
3. Каждая строка вывода должна содержать букву русского алфавита, пробел и количество раз, которое буква встречалась в введенных строках - все как надо: буква - пробел - кол-во.
Часа полтора трудозатрат псу под хвост :((
Выручайте комрады!
package com.javarush.task.task10.task1012;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
/*
Количество букв
Введи с клавиатуры 10 строчек и посчитай в них количество различных букв без учета регистра. Результат выведи на экран в алфавитном порядке.
Пример вывода:
а 5
б 8
в 3
г 7
д 0
...
я 9
Requirements:
++1. Программа должна 10 раз считывать данные с клавиатуры.
2. Программа должна выводить текст на экран.
3. Выведенный текст должен содержать 33 строки.
4. Каждая строка вывода должна содержать букву русского алфавита, пробел и количество раз, которое буква встречалась в введенных строках.
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// Алфавит
List<Character> alphabet = Arrays.asList(
'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж',
'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о',
'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц',
'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я');
// Ввод строк
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
String line = reader.readLine();
list.add(line.toLowerCase());
}
HashMap<Character, Integer> hash = charsNumber( alphabet, list);
// Вывод
print(hash, alphabet);
}
// Метод подсчета символов
public static HashMap charsNumber(List<Character> charsList, ArrayList<String> arrayList) {
HashMap<Character, Integer> hash = new HashMap<>();
int count = 0;
for (char charKey : charsList) {
hash.put(charKey, count);
}
for (int i = 0; i < arrayList.size(); i++) {
String word = arrayList.get(i);
for (int j = 0; j < word.length(); j++) {
char character = word.charAt(j);
int hashCount = hash.get(character);
hashCount++;
hash.put(character, hashCount);
}
}
return hash;
}
// Метод вывода
public static void print (HashMap<Character, Integer> hash, List<Character> alphabet) {
for (char character : alphabet) {
System.out.println(character + " " + hash.get(character));
}
}
}