все идеально отрабатывает на всех тестах....что ему надо?
package com.javarush.task.task19.task1924;
import javax.swing.*;
import java.io.*;
import java.util.*;
/*
Замена чисел
*/
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 isInteger(String string) {
try {
Integer.valueOf(string);
return true;
} catch (NumberFormatException e) {
return false;
}
}
public static ArrayList<String> downloadStrings(BufferedReader bufferedReader) throws IOException {
ArrayList<String> strings = new ArrayList<>();
while (bufferedReader.ready()) {
strings.add(bufferedReader.readLine());
}
return strings;
}
public static String doIt(ArrayList<String> strings) {
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < strings.size(); i++) {
String next = strings.get(i);
String[] words = next.split("\\b");
for (int j = 0; j < words.length; j++) {
if (isInteger(words[j])) {
if (map.containsKey(Integer.parseInt(words[j]))) {
words[j] = map.get(Integer.parseInt(words[j]));
}
}
if (j == words.length - 1)
stringBuilder.append(words[j]);
else
stringBuilder.append(words[j]).append(" ");
}
if (i != strings.size() - 1)
stringBuilder.append("\n");
}
return stringBuilder.toString();
}
public static void main(String[] args) throws IOException {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
String fileName = reader.readLine();
try (BufferedReader bR = new BufferedReader(new FileReader(fileName))) {
ArrayList<String> strings = downloadStrings(bR);
try (BufferedWriter bW = new BufferedWriter(new FileWriter(fileName))) {
bW.write(doIt(strings));
bW.flush();
}
}
}
}
}