Привет всем) Не проходит валидацию
тестовый файл содержал:
12 ewq 3 trf 7 apv 123 rp 1 ku20 12345
12 ewq 3 trf 7 apv 123 rp 1 ku20 12345
12 ewq 3 trf 7 apv 123 rp 1 ku20 12345
вывод:
двенадцать ewq три trf семь apv 123 rp один ku20 12345
двенадцать ewq три trf семь apv 123 rp один ku20 12345
двенадцать ewq три trf семь apv 123 rp один ku20 12345
вопрос: что от меня хотят?
package com.javarush.task.task19.task1924;
import java.awt.*;
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.List;
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 {
List<String> list = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
StringBuilder sb = new StringBuilder();
BufferedReader readerFile = new BufferedReader(new FileReader(fileName));
Pattern pattern = Pattern.compile("\\b(\\d|1[012])\\b");
while (readerFile.ready()) {
String s = readerFile.readLine();
sb.append(s);
Matcher matcher = pattern.matcher(sb);
while (matcher.find()) {
int start = matcher.start();
int end = matcher.end();
sb.replace(start, end, map.get(Integer.parseInt(sb.substring(start, end))));
}
sb.append("\n");
}
readerFile.close();
System.out.println(sb);
}
}
