Помогите разобраться почему не удовлетворяет условию?
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.Locale;
import java.util.Map;
/*
Замена чисел
*/
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 bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String fileName = bufferedReader.readLine();
bufferedReader.close();
try (BufferedReader reader = new BufferedReader(new FileReader(fileName)))
{
while (reader.ready()){
String line = reader.readLine();
boolean flag = line.substring(line.length()-1).equals(".")||
line.substring(line.length()-1).equals(",");
String rightEnd = new String("");
if (flag) rightEnd=line.substring(line.length()-1);
String [] wordsLine = line.split(" ");
String fixLine = new String();
for (int i=0;i< wordsLine.length;i++){
int key = -1;
try {
key = (int) Double.parseDouble(wordsLine[i]);
}
catch (Exception e){
fixLine = fixLine+" "+wordsLine[i];
continue;
}
if (map.containsKey(key)) fixLine = fixLine+" "+map.get(key); else
fixLine = fixLine+" "+key;}
fixLine = fixLine.substring(1);
if (!fixLine.substring(fixLine.length()-1).equals(".")&&
flag&&!fixLine.substring(fixLine.length()-1).equals(","))
System.out.println(fixLine+rightEnd); else System.out.println(fixLine);
}
}
catch (Exception e){
e.printStackTrace();
}
}
}