почему 110 превращается в одинадцать0. Но стоит в конец добавить любой набор цифр и тогда почему то 110 остается 110, и почему file1. становиться file1. разве \\d+ не ищет последовательность цифр?
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(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) {
Pattern pattern = Pattern.compile("\\d+");
BufferedReader filename = new BufferedReader(new InputStreamReader(System.in));
try (BufferedReader reader = new BufferedReader(new FileReader(filename.readLine()))){
String line = "";
while ((line = reader.readLine()) != null){
StringBuilder builder = new StringBuilder(line);
Matcher matcher = pattern.matcher(builder);
while (matcher.find()){
String foundnim = matcher.group();
try {
int foundnumber = Integer.parseInt(foundnim);
if (map.containsKey(foundnumber)){
builder.replace(matcher.start(), matcher.end(), map.get(foundnumber));
} else {
}
} catch (NumberFormatException e){
e.printStackTrace();
}
}
System.out.println(builder.toString());
}//C:\Users\Влад\OneDrive\Рабочий стол\two.txt
filename.close();
}catch (IOException e){
e.printStackTrace();
}
}
}