Я проверял задачу в IJ, и этот текст не проходит(все нормально но вместо "двенадцать" пишет "один2"), но если я сотру "12" и напишу 12, то работает. похожу между этими цифрами еще какой-то символ. Не понимаю((
И еще вопос:
".*[0-9]+.*" как работает это регулярка? Она же сработает с числом 123 например?(Это из предыдущей задчи, я её решил но не совсем понял)
package com.javarush.task.task19.task1924;
import java.util.*;
import java.io.*;
/*
Замена чисел
*/
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) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String address = reader.readLine();
reader.close();
BufferedReader file = new BufferedReader(new FileReader(address));
String line;
while((line = file.readLine())!=null) {
String[] words = line.split(" ");
for (int i = 0; i < words.length; i++) {
try {
int count = Integer.parseInt(words[i]);
if (map.containsKey(count))
line = line.replaceAll(words[i],map.get(count));
} catch(Exception e) {}
}
System.out.println(line);
}
file.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}