Уже голову разбил и мотивация упала..Подскажите где тут исправить? Несколько вариантов вроде прогнал и везде по тз вывод получаю. Не понимаю что не так.
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(12,"двенадцать");
map.put(11,"одиннадцать");
map.put(10,"десять");
map.put(9,"девять");
map.put(8,"восемь");
map.put(7,"семь");
map.put(6,"шесть");
map.put(5,"пять");
map.put(4,"четыре");
map.put(3,"три");
map.put(2,"два");
map.put(1,"один");
map.put(0,"ноль");
}
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
Pattern p = Pattern.compile("\\b[0-9]\\b|\\b1[0-2]\\b");
String str = null;
int numb = 0;
String val = "";
Matcher m = null;
try (
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedReader fr = new BufferedReader(new FileReader(br.readLine()))
){
while (true){
str = fr.readLine();
if(str == null) break;
String[] ss = str.split("\\b");
for(String s1 : ss){
//if(m.find()) System.out.println(m.group());
m = p.matcher(s1);
if(m.find()) {
val = m.group();
try {
numb = Integer.parseInt(val);
} catch (NumberFormatException e){
continue;
}
if(map.get(numb) != null){
str = str.replaceFirst(val,map.get(numb));
}
}
}
System.out.println(str);
/*while (m.find()){
val = m.group();
try {
numb = Integer.parseInt(val);
} catch (NumberFormatException e){
continue;
}
if(map.get(numb) != null){
str = str.replaceFirst(val,map.get(numb));
}
}
sb.append(str + "\n");*/
}
} catch (IOException e){
}
}
}