=) короче вроде все как надо, но почему то когда пишу принтлн оно выводит лишнюю пустую строку, пишу принт пишет все слитно))) где тут секретный перенос строки ) куда смотреть)
package com.javarush.task.task19.task1924;
import java.io.*;
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 IOException {
ArrayList<String> list = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file = reader.readLine();
reader.close();
BufferedReader br = new BufferedReader(new FileReader(file));
Pattern p = Pattern.compile("^[0-9]+$");
while (br.ready()) {
list.add(br.readLine());
}
for (int i = 0; i < list.size(); i++){
StringBuilder sb = new StringBuilder();
String[] words = list.get(i).split(" ");
for (int j = 0; j < words.length; j++) {
Matcher m = p.matcher(words[j]);
if (m.find()) {
if (map.containsKey(Integer.parseInt(words[j]))) {
for (Map.Entry<Integer, String> pair : map.entrySet()) {
if (pair.getKey() == Integer.parseInt(words[j])) {
sb.append(pair.getValue() + " ");
break;
}
}
} else sb.append(words[j]);
}else
sb.append(words[j]+ " ");
}
System.out.println(sb.toString());
}
br.close();
}
}