Написать программу, которая вводит с клавиатуры строку текста. Программа заменяет в тексте первые буквы всех слов на заглавные. Вывести результат на экран. Пример ввода: мама мыла раму. Пример вывода: Мама Мыла Раму. Требования: 1. Программа должна выводить текст на экран. 2. Программа должна считывать строку с клавиатуры. 3. Класс Solution должен содержать один метод. 4. Программа должна заменять в тексте первые буквы всех слов на заглавные. Нижеприведенный код работает отлично, но валидацию не проходит. Валидатор ругается, что не все первые буквы слов в верхнем регистре, но это не так. Почему колхозные решения в over900 строк успешно проходят проверку, а это (возможно, тоже колхозное, чего уж) нет?
public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();
        String phrase = "";

        for(String ch: s.split(" ")){
            phrase += ch.substring(0,1).toUpperCase() + ch.substring(1) + " ";
        }

        System.out.println(phrase.trim());
    }
}