Ошибка вывода. Возможно проблема в паттерне "\\b(0|1|2|3|4|5|6|7|8|9|10|11|12)\\b" ?
package com.javarush.task.task19.task1924;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
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) {
work();
}
public static void work () {
try {
BufferedReader fileForRead = getFileForRead(getConsoleLine());
//BufferedReader fileForRead = getFileForRead("D:\\java\\файлы ввода и вывода\\read.txt");
while (fileForRead.ready()) {
StringBuilder line = new StringBuilder(fileForRead.readLine());
Matcher m = getPattern().matcher(line);
//Pattern p = Pattern.compile("\\b(0|1|2|3|4|5|6|7|8|9|10|11|12)\\b");
//Matcher m = p.matcher(line);
while (m.find()) {
String strNum = m.group();
line.delete(m.start(), m.start() + strNum.length());
line.insert(m.start(), map.get(Integer.parseInt(strNum)));
}
/*if (line.length() > 0) {
System.out.println(line);
}*/
System.out.println(line);
}
fileForRead.close();
}
catch (IOException e) {
}
}
public static Pattern getPattern () {
StringBuilder line = new StringBuilder("\\b(");
for (Map.Entry entry: map.entrySet()){
line.insert(line.length(), entry.getKey() + "|");
}
line.delete(line.length() - 1, line.length());
line.insert(line.length(), ")\\b");
return Pattern.compile(line.toString());
}
public static BufferedReader getFileForRead (String fileName) {
try {
FileReader fileForRead = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileForRead);
return bufferedReader;
}
catch (FileNotFoundException e) {
return null;
}
}
public static String getConsoleLine () {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();
reader.close();
return line;
}
catch (IOException e) {
return null;
}
}
}