package com.javarush.test.level19.lesson10.home06; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; /* Замена чисел 1. В статическом блоке инициализировать словарь map парами [число-слово] от 0 до 12 включительно Например, 0 - "ноль", 1 - "один", 2 - "два" 2. Считать с консоли имя файла 3. Заменить все числа на слова используя словарь map 4. Результат вывести на экран 5. Закрыть потоки. Не использовать try-with-resources Пример данных: Это стоит 1 бакс, а вот это - 12 . Переменная имеет имя file1. 110 - это число. Пример вывода: Это стоит один бакс, а вот это - двенадцать . Переменная имеет имя file1. 110 - это число. */ 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 void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String fileName = reader.readLine(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), StandardCharsets.UTF_8)); String line; while ((line = bufferedReader.readLine()) != null) { StringBuilder builder = new StringBuilder(); StringTokenizer st = new StringTokenizer(line, " "); while (st.hasMoreTokens()) { String line1 = st.nextToken(); try { int x = Integer.parseInt(line1); for (Map.Entry<Integer, String> entry : map.entrySet()) if (x == entry.getKey()) line1 = entry.getValue(); } catch (NumberFormatException e) { } builder.append(line1); builder.append(" "); } System.out.println(builder.toString().trim()); } reader.close(); bufferedReader.close(); } }
РЕШЕНИЕ ПЕРВОНАЧАЛЬНОЕ, С ОТДЕЛЬНЫМ МЕТОДОМ:
package com.javarush.test.level19.lesson10.home06; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; /* Замена чисел 1. В статическом блоке инициализировать словарь map парами [число-слово] от 0 до 12 включительно Например, 0 - "ноль", 1 - "один", 2 - "два" 2. Считать с консоли имя файла 3. Заменить все числа на слова используя словарь map 4. Результат вывести на экран 5. Закрыть потоки. Не использовать try-with-resources Пример данных: Это стоит 1 бакс, а вот это - 12 . Переменная имеет имя file1. 110 - это число. Пример вывода: Это стоит один бакс, а вот это - двенадцать . Переменная имеет имя file1. 110 - это число. */ 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 void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String fileName = reader.readLine(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), StandardCharsets.UTF_8)); String line; while((line = bufferedReader.readLine()) != null) System.out.println(replace(line)); reader.close(); bufferedReader.close(); } private static String replace(String line) { StringBuilder builder = new StringBuilder(); StringTokenizer st = new StringTokenizer(line, " "); while(st.hasMoreTokens()) { String line1 = st.nextToken(); try { int x = Integer.parseInt(line1); for (Map.Entry<Integer, String> entry : map.entrySet()) if (x == entry.getKey()) line1 = entry.getValue(); } catch (NumberFormatException e) { } builder.append(line1); builder.append(" "); } return builder.toString().trim(); } }
Leave A Comment