Я уже и так и этак проверил, всё работает отлично, но не принимает( Может нельзя регулярные выражения использовать? Мы их ещё не проходили. Подскажите, спасибо!
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(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 reader = new BufferedReader(new InputStreamReader(System.in));
String filename = reader.readLine();
reader.close();
Pattern pattern = Pattern.compile("\\b(1[0-2]|[0-9])\\b");
Matcher matcher;
reader = new BufferedReader(new FileReader(filename));
while (reader.ready()) {
String str = reader.readLine();
matcher = pattern.matcher(str);
while (matcher.find()) {
String temp = matcher.group();
for (Map.Entry<Integer, String> pair : map.entrySet()
) {
if (temp.equals(pair.getKey().toString())) {
str = str.replaceFirst(temp, pair.getValue());
}
}
}
System.out.println(str);
}
reader.close();
}
}
//1. В статическом блоке инициализировать словарь map парами [число-слово] от 0 до 12 включительно.
// Например, 0 - "ноль", 1 - "один", 2 - "два"
// 2. Считать с консоли имя файла, считать содержимое файла.
// 3. Заменить все числа на слова используя словарь map.
// 4. Результат вывести на экран.
// 5. Закрыть потоки.
//
// Пример данных в файле: