JavaRush
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Подскажите плиз почему в "map" не попадает (char ",")!!...
Антон Никифоров
29 уровень
  • 25.12.2022
  • 288просмотров
  • 3комментариев

Подскажите плиз почему в "map" не попадает (char ",")!!! ПОДСКАЖИТЕ ПЛИЗ ГДЕ ОШИБКА ,ГОЛОВУ СЛОМАЛ, ВРОДЕ ВСЕ РАБОТАЕТ!!!

Вопрос по задаче Встречаемость символов
Java Core,  8 уровень,  11 лекция
Обсуждается


Программа запускается с одним параметром - именем файла, который содержит английский текст.
Посчитать частоту встречания каждого символа.
Отсортировать результат по возрастанию кода ASCII (почитать в инете).

Пример:
','=44, 's'=115, 't'=116.

Вывести на консоль отсортированный результат:
[символ1] частота1
[символ2] частота2
Закрыть потоки.

Пример вывода:
, 19
- 7
f 361

Требования:
  • Считывать с консоли ничего не нужно.
  • Создай поток для чтения из файла, который приходит первым параметром в main.
  • В файле необходимо посчитать частоту встречания каждого символа и вывести результат.
  • Выведенный в консоль результат должен быть отсортирован по возрастанию кода ASCII.
  • Поток для чтения из файла должен быть закрыт.
package com.javarush.task.task18.task1821; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class Solution { public static void main(String[] args) throws IOException { FileInputStream reader = new FileInputStream(args[0]); Map<Character, Integer> map = new HashMap<>(); ArrayList<Character> list = new ArrayList(); /* list.add('d'); list.add(','); list.add(','); list.add('h'); list.add('d'); list.add('d'); list.add('h'); list.add(','); list.add('d'); list.add('u'); list.add('p'); list.add('p'); list.add(','); list.add(',');*/ while (reader.available()>0){ list.add((char) reader.read()); } Collections.sort(list); int count=1; //333377755/ 123 for (int i =list.size()-1; i>0;i--){ if(list.get(i).equals(list.get(i-1))){ count++; }else{ map.put(list.get(i),count); count=1; } } reader.close(); /* for (int a :list ) { System.out.print(a+" "); }*/ for (Map.Entry<Character, Integer> pair : map.entrySet()) { String key = String.valueOf(pair.getKey()); String value = String.valueOf(pair.getValue()); System.out.println(key + " " + value); } } }
0
Комментарии (3)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
DanielCEO в BicycleInventionAcad
25 декабря 2022, 21:52
У вас элемент помещается в мапу только в том случае, если он не равен предыдущему. При i==1 у вас сравнивается ',' с ',', count увеличивается и происходит следующий виток цикла с i--. Но i теперь не выполняет условие, поэтому цикл не запускается. Таким образом условие else для символа с наименьшим кодом ASCII является недосягаемым, и он не будет добавлен в мапу.
+1
Антон Никифоров
Уровень 29
29 декабря 2022, 05:38
огромное спасибо !!!! С наступающими праздниками!!!
+1
DanielCEO в BicycleInventionAcad
29 декабря 2022, 08:32
С наступающими😉
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush