Уже несколько часов ищу в вопросах тесты и все работают, видимо плохо ищу.
Подскажите, пожалуйста, в чем может быть проблема такого решения?
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.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) throws Exception {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String fileName = bufferedReader.readLine();
bufferedReader.close();
ArrayList<String> strings = new ArrayList<>();
BufferedReader bufferedReader1 = new BufferedReader(new FileReader(fileName));
while (bufferedReader1.ready()) {
strings.add(bufferedReader1.readLine());
}
bufferedReader1.close();
Pattern pattern = Pattern.compile("1?[0-9]");
for (String string : strings) {
String currentString = string;
String[] words = string.split("[\\p{P}\\s]");
for (String word : words) {
String currentWord = word;
if (word.matches(pattern.pattern()) && map.get(Integer.parseInt(word)) != null) {
currentWord = map.get(Integer.parseInt(word));
}
currentString = currentString.replaceFirst(word, currentWord);
}
System.out.println(currentString);
}
}
}