В общем, у меня было две реализации. Одна снизу, вторая будет прикреплена ниже к содержанию вопроса. Оба вопроса заменяют числа на соответствующие слова, однако оба решения валидатор принимать не хочет. Разница между 1 и 2 решением (собственно, почему я и решил переписать) в том, что 1 решение заменяет цифры вне зависимости от их отдельности от чего-либо (что в принципе не смертельно и должно было приниматься), а второе решение сплитит по пробелу. На ввод: 0 1 2 3 4 5 6 7 8 9 10 11 12 Оба решения выдали ответ: ноль один два три четыре пять шесть семь восемь девять десять одиннадцать двенадцать Решение №1:
public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        String file = reader.readLine();

        BufferedReader fileReader = new BufferedReader(new FileReader(file));
        while(fileReader.ready()) {
            String line = fileReader.readLine();

            if(line.contains("10"))
                line = line.replace("10", map.get(10));
            if(line.contains("11"))
                line = line.replace("11", map.get(11));
            if(line.contains("12"))
                line = line.replace("12", map.get(12));

            for(Map.Entry<Integer, String> entry : map.entrySet())
                if(line.contains(entry.getKey().toString()))
                    line = line.replace(entry.getKey().toString(), entry.getValue());

            System.out.println(line);
        }

        reader.close();
        fileReader.close();
    }
P.S. В решении 1 хотел поскорее отдать задачу валидатору, потому решил воспользоваться первым пришедшим в голову костылем. Проблема, из-за которой он понадобился, проста: числа 11, 12 и 10 программа воспринимала, как 1 и 1, 1 и 2, 1 и 0. Потому получалось одинодин, одиндва, одинноль вместо нужных слов.