JavaRush
AI Academy
new
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Это стоит 0один23456789101112 бакс, а вот это - 012345678...
Антон Никифоров
29 уровень
  • 27.02.2023
  • 432просмотров
  • 1комментарий

Это стоит 0один23456789101112 бакс, а вот это - 01234567891011двенадцать. Переменная имеет имя file1. 0123456789101112 - это число. все вроде работает но немогу понять откуда эти непонятные цифры , КУДА КОПАТЬ?

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


1. В статическом блоке инициализировать словарь map парами [число-слово] от 0 до 12 включительно.
Например, 0 - "ноль", 1 - "один", 2 - "два"
2. Считать с консоли имя файла, считать содержимое файла.
3. Заменить все числа на слова используя словарь map.
4. Результат вывести на экран.
5. Закрыть потоки.

Пример данных в файле:
Это стоит 1 бакс, а вот это - 12.
Переменная имеет имя file1.
110 - это число.

Пример вывода в консоль:
Это стоит один бакс, а вот это - двенадцать.
Переменная имеет имя file1.
110 - это число.

Требования:
  • Класс Solution должен содержать публичное статическое поле map типа Map<Integer, String>, которое должно быть сразу проинициализировано.
  • Программа должна считывать имя файла с консоли (используй BufferedReader).
  • BufferedReader для считывания данных с консоли должен быть закрыт.
  • Программа должна считывать содержимое файла (используй FileReader).
  • Поток чтения из файла (FileReader) должен быть закрыт.
  • Программа должна выводить в консоль все строки из файла, но числа должны быть заменены на слова из словаря map.
  • Класс Solution должен содержать статический блок, в котором добавляются в map тринадцать пар.
....
package com.javarush.task.task19.task1924; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; public class Solution { public static Map<Integer, String> map = new HashMap<Integer, String>(); static { map.put(0, "ноль"); map.put(1, "один"); map.put(2, "два"); map.put(3, "три"); map.put(4, "четыре"); map.put(5, "пять"); map.put(6, "шесть"); map.put(7, "семь"); map.put(8, "восемь"); map.put(9, "девять"); map.put(10, "десять"); map.put(11, "одиннадцать"); map.put(12, "двенадцать"); } public static boolean isNumeric(String str) { try { Integer.parseInt(str); return true; } catch(NumberFormatException e){ return false; } } public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String name = reader.readLine(); reader.close(); BufferedReader reader1 = new BufferedReader(new FileReader(name)); String s=""; //этот файл не пустой while (reader1.ready()){ String p= reader1.readLine(); s=s+p+"\n"; }reader1.close(); //System.out.println(s); StringBuilder sb= new StringBuilder(); String S=""; //System.out.println(); String[] s1 = s.split("\\b"); // for (String h:s1 // ) { // System.out.print(h); // } for (String sk: s1) { if (isNumeric(sk)) { Integer a=Integer.parseInt(sk); for(Map.Entry<Integer,String> m: map.entrySet()){ int key= m.getKey(); String value = m.getValue(); if(a.equals(key)){S+=value;} else if(!a.equals(key)){S+=key;} else continue; } } else { S+=sk; } }System.out.println(S); } }
0
Комментарии (1)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
Уровень 27
27 февраля 2023, 07:49
Зачем второй раз спрашивать? :) Тут ответ: https://javarush.com/help/88187
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush