The requirement is fufilled after testing my code. But on CodeGym site this is not fufilled. I do not understand why
help help help please
package com.codegym.task.task19.task1924;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/*
Replacing numbers
*/
public class Solution {
public static Map<Integer, String> map = new HashMap<Integer, String>();
public static String[] words = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve"};
static {
for (int i = 0; i < words.length; i++) {
map.put(i, words[i]);
}
}
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file = reader.readLine();
reader.close();
FileReader fileReader = new FileReader(file);
BufferedReader bR = new BufferedReader(fileReader);
String line;
while ((line = bR.readLine()) != null) {
updateAndPrintLine(line);
}
bR.close();
}
private static void updateAndPrintLine(String line) {
String[] words = line.trim().split(" "); // splits line
for (int i = 0; i < words.length; i++) {
words[i] = words[i].replaceAll("[^a-zA-Z0-9 ]", ""); // removes punctuation
if (isNumber(words[i]) && map.containsKey(Integer.parseInt(words[i]))) {
line = line.replaceFirst(words[i], map.get(Integer.parseInt(words[i])));
}
}
System.out.println(line); // outputs and removes last space
}
private static boolean isNumber(String word) {
try {
int number = Integer.parseInt(word);
return true;
} catch (NumberFormatException | NullPointerException e) {
return false;
}
}
}