Всем привет.
Не могу допереть, почему не работает replaceAll() в 50-й строке.
Значения вроде все приходят валидные, но замены не происходит.
Заранее благодарен за помощь 🤝
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.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 br = new BufferedReader(new InputStreamReader(System.in));
String fileName = br.readLine();
br.close();
try (FileReader fr = new FileReader(fileName)) {
br = new BufferedReader(fr);
while (br.ready()) {
String str = br.readLine();
String[] splitStr = str.split(" ");
for (int i = 0; i < splitStr.length; i++)
try {
String tmp = splitStr[i]
.replaceAll("\\p{Punct}", "");
int number = Integer.parseInt(tmp);
if (map.containsKey(number))
splitStr[i].replaceAll("\\d+", map.get(number));
System.out.print(splitStr[i] + " ");
} catch (Exception ignore) {
System.out.print(splitStr[i] + " ");
}
System.out.println();
}
}
}
}