Please help, is there any problem with regex \\d{1,2}\\D* ?
package com.codegym.task.task19.task1924;
import java.util.HashMap;
import java.util.Map;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedWriter;
/*
Replacing numbers
*/
public class Solution {
public static Map<Integer, String> map = new HashMap<Integer, String>();
static
{
map.put(0, "zero");
map.put(1, "one");
map.put(2, "two");
map.put(3, "three");
map.put(4, "four");
map.put(5, "five");
map.put(6, "six");
map.put(7, "seven");
map.put(8, "eight");
map.put(9, "nine");
map.put(10, "ten");
map.put(11, "eleven");
map.put(12, "twelve");
}
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String fileName = br.readLine();
br.close();
br = new BufferedReader(new FileReader(fileName));
StringBuilder readAll = new StringBuilder();
StringBuilder word = new StringBuilder();
char charRead = 0;
while(br.ready())
{
charRead = (char)br.read();
if(charRead == ' ' || charRead == '\n')
{
if(word.length() != 0)
{
func(readAll,word);
word = new StringBuilder();
}
readAll.append(charRead);
}
else{
word.append(charRead);
}
}
if(word.length() != 0)
{
func(readAll,word);
}
br.close();
FileWriter fw = new FileWriter(fileName);
fw.write(readAll.toString());
fw.close();
}
public static void func(StringBuilder readAll, StringBuilder word){
String wordString = word.toString();
if(wordString.matches("\\d{1,2}\\D*"))
{
StringBuilder numSb = new StringBuilder();
for(int j = 0; j < wordString.length(); j++)
{
if(Character.isDigit(wordString.charAt(j)))
{
numSb.append(wordString.charAt(j));
}
}
Integer num = Integer.parseInt(numSb.toString());
if(map.containsKey(num))
{
readAll.append(map.get(num));
readAll.append(wordString.replace(numSb.toString(),""));
}
else
{
readAll.append(wordString);
}
}
else
{
readAll.append(wordString);
}
}
}