package com.javarush.task.task10.task1012;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
/*
Количество букв
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Map<Character, Integer> out = new LinkedHashMap<>();
// Алфавит
List<Character> alphabet = Arrays.asList(
'а','б','в','г','д','е','ё','ж',
'з','и','й','к','л','м','н','о',
'п','р','с','т','у','ф','х','ц',
'ч','ш','щ','ъ','ы','ь','э','ю','я');
// Ввод строк
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
String s = reader.readLine();
list.add(s.toLowerCase());
}
for (int i = 0; i < 10; i++) { //я хочу преобразовать лист строк в массив символов
// на этом я собственно и застрял,
char[] str = list.get(i).replaceAll("\\s+", "").toCharArray(); //тут я беру первую строку и преобразовываю ее в массив символов
//я хочу из всех строк сформировать один цельный массив символов.
}
/*В первом цикле берем первый элемент из массива символов, который нам дан(алфавит)
* после чего во втором цикле мы должны пробежать по всем символам, введеным с клавиатуры,
* с помощью счетчика(count) считаем совпадения и закидываем iтый элемент алфавита и значение счетчика
* в карту(связанную)*/
int count=0;
for (int i=0; i<alphabet.size();i++){
for (int j=0;j<list.size();j++){
if (alphabet.get(i).equals(list.get(j))){
count++;
}
}
out.put(alphabet.get(i),count);
}
//тут просто вывод
for (Map.Entry<Character,Integer> go:out.entrySet()) {
System.out.println(go.getKey() + " " + go.getValue());
}
}
}
/* Количество букв
Ввести с клавиатуры 10 строчек и подсчитать в них количество различных букв (для 33 маленьких букв алфавита). Результат вывести на экран в алфавитном порядке.
Пример вывода:
а 5
б 8
в 3
г 7
д 0
...
я 9
Требования:
1. Программа должна 10 раз считывать данные с клавиатуры.
2. Программа должна выводить текст на экран.
3. Выведенный текст должен содержать 33 строки.
4. Каждая строка вывода должна содержать букву русского алфавита, пробел и сколько раз буква встречалась в введенных строках.*/
Pavel Ziryukin
32 уровень
Очень нужна помощь. В комментариях подробно.
Решен
Комментарии (18)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
22 ноября 2019, 19:21
А что мешает вообще не делать список строк, а сразу склеить все в одну большую строку?
+1
Игорь Backend Developer
22 ноября 2019, 19:24
вроде об этом и спросил он \
))
0
Ksenia Volkova Java Developer в DXC Master
22 ноября 2019, 19:24
Ну вот а я спрашиваю, что мешает это сделать. Не строку из списка даже, а вообще без списка.
0
Игорь Backend Developer
22 ноября 2019, 19:25
мналичие знаний например, он же не 28ой ;)
0
Игорь Backend Developer
22 ноября 2019, 19:28
Наверное нехватка знаний, он же не 28 лвл ;)
0
Ksenia Volkova Java Developer в DXC Master
22 ноября 2019, 19:30
Так строки соединять намного раньше 10-го учатся.
0
Игорь Backend Developer
22 ноября 2019, 19:33
А ты все помнишь из всех уроков? ;)
0
Ksenia Volkova Java Developer в DXC Master
22 ноября 2019, 19:35
Я и таблицу умножения с 3-го класса помню.
0
Игорь Backend Developer
22 ноября 2019, 19:37
Странно, её преподавали во втором 😁
0
Ksenia Volkova Java Developer в DXC Master
22 ноября 2019, 19:40
Это если началка 1-3. А если 1-4, то в 3-м.
0
Игорь Backend Developer
22 ноября 2019, 19:41
1-4 во втором
+1
Pavel Ziryukin
22 ноября 2019, 19:43
Все верно сделал обычной конкатинацией. Проблема не в том, что я этого не знал, а в том, что когда сидишь пару часов над задачей, очевидные решения просто ускользают от тебя)
0
Ksenia Volkova Java Developer в DXC Master
22 ноября 2019, 19:43
У нас 3-й класс с этого начинался. Помню как сейчас 😁
Но у нас программа экспериментальная была.
Во 2 классе про системы счисления было.
0
Pavel Ziryukin
22 ноября 2019, 19:45
А дальше все заработало с небольшими доработками, счетчик переместил и типо того, спасибо товарищи)
0
Ksenia Volkova Java Developer в DXC Master
22 ноября 2019, 20:10
❓
0
Pavel Ziryukin
22 ноября 2019, 19:08
Или как запихнуть все строки листа в одну строку, что наверное тоже решит проблему, ну да, после чего строку можно будет спокойно преобразовать в массив символов.
0
Игорь Backend Developer
22 ноября 2019, 19:23полезный
конкатинация или stringbuilder
+1
Pavel Ziryukin
22 ноября 2019, 19:07
Собственно вопрос: как сформировать цельный массив символов из листа строк.
0