Заранее хочу извиниться из-за спагетти кода,можете объяснить в чем ошибка,выводит вроде все правильно
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.*;
/*
Замена чисел
*/
public class Solution {
public static Map<Integer, String> map = new HashMap<>();
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 boolean isNumber(String s) {
if (s.length() == 0) {
return false;
}
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
char c = chars[i];
if ((i != 0 && c == '-') // Строка содержит '-'
|| (!Character.isDigit(c) && c != '-') // или не цифра и не начинается с '-'
|| (chars.length == 1 && c == '-')) // или одиночный '-'
{
return false;
}
}
return true;
}
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String fileName = bufferedReader.readLine();
bufferedReader.close();
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line = "";
while (reader.ready()) {
line += reader.readLine();
line += "\n";
}
reader.close();
int i = 0;
int j = 0;
int k = 0;
System.out.println(line);
String[] firstSplit = line.split("\\.");
for (String s : firstSplit) {
String[] secondSplit = s.split(",");
for (String s2 : secondSplit) {
String[] thirdSplit = s2.split(" ");
for (String s3 : thirdSplit) {
boolean b = isNumber(s3);
if (b) {
System.out.print(map.get(Integer.parseInt(s3)));
} else
System.out.print(s3);
if (k != thirdSplit.length - 1) System.out.print(" ");
k++;
}
k = 0;
if (j != secondSplit.length - 1) System.out.print(",");
j++;
}
j = 0;
i++;
if (i != firstSplit.length) System.out.print(".");
}
}
}