Всю логику вроде построил правильно. Но который раз сталкиваюсь с проблемой не умение составлять правильно паттерны
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.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 {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferedReader file = new BufferedReader(new FileReader(in.readLine()));
Pattern pattern = Pattern.compile("\\b[0-9]{1,2}\\b");
Matcher matcher = null;
while (file.ready()){
String str = file.readLine();
matcher = pattern.matcher(str);
while (matcher.find()){
int x = Integer.parseInt(matcher.group());
if (map.containsKey(x)){
str=str.replaceFirst(matcher.group(),map.get(x));
}
}
System.out.println(str);
}
in.close();
file.close();
}
}