Привет,
Подскажите, пожалуйста, что не так с регуляркой?
Почему не проходит вторая половина условия ИЛИ?
Спасибо!
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.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 readName = new BufferedReader(new InputStreamReader(System.in));
String name = readName.readLine();
readName.close();
BufferedReader readFile = new BufferedReader(new FileReader(name));
Pattern pattern = Pattern.compile("(\\b[0-9]\\b)| (\\b1[0-2]\\b)");
while (readFile.ready()) {
String[] text = readFile.readLine().split(" ");
for (int i = 0; i < text.length; i++) {
String value = "";
Matcher matcher = pattern.matcher(text[i]);
while (matcher.find()) {
value += map.get(Integer.parseInt(matcher.group()));
}
if (value.equals("")) {
value += text[i];
}
if (i == text.length - 1) {
System.out.print(value);
}
else {
System.out.print(value + " ");
}
}
}
readFile.close();
}
}