Валя не принимает по пункту
"Программа должна выводить в консоль все строки из файла, но числа должны быть заменены на слова из словаря map"
Тестировал на тексте:
45 баба ягодка опять, 6 Фредди всех нас хочет съесть
7,8,9,10 никогда не спите дети
11 барабанные палочки
10 негритят решили пообедать, 1 вдруг поперхнулся, и их осталось 9.
13 и 112 и 01 не сработает
Это стоит 1 бакс, а вот это - 12.
Это стоит 12 баксов, а вот это -3.
Это стоит 13 баксов, а вот это - 4.
Это стоит 10 баксов, а вот это - 109.
Переменная имеет имя file1.
110 - это число.
тест 91 тест
1 2 3 4 5 и еще 25
package com.javarush.task.task19.task1924;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
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 void main(String[] args) {
try {
String fileName = readFileNameFromConsole();
printListFromFile(fileName);
} catch (FileNotFoundException e) {
showErrorMessage("File is not found");
} catch (IOException e) {
showErrorMessage("IO ERROR");
}
}
private static void printListFromFile(String fileName) throws IOException {
BufferedReader fileReader = new BufferedReader(new FileReader(fileName));
while (fileReader.ready()) {
replaceNumsToWordsAndPrint(fileReader);
}
fileReader.close();
}
private static void replaceNumsToWordsAndPrint(BufferedReader fileReader) throws IOException {
Pattern pattern = Pattern.compile("\\b1[0-2]\\b|\\b[0-9]\\b");
String fileString = fileReader.readLine();
Matcher matcher = pattern.matcher(fileString);
while (matcher.find()) {
String match = matcher.group();
fileString = fileString.replaceFirst(match, map.get(Integer.parseInt(match)));
}
System.out.println(fileString);
}
private static String readFileNameFromConsole() throws IOException {
BufferedReader consoleFileNameReader = new BufferedReader(new InputStreamReader(System.in));
String fileName = consoleFileNameReader.readLine();
consoleFileNameReader.close();
return fileName;
}
private static void showErrorMessage(String message){
System.out.println(message);
}
}