Не понял, что не нравится валидатору. Вроде выводит все правильно независимо от кол-ва слов и учитывает пробелы. Кто подскажет, чего я тут не учел?
package com.javarush.task.task08.task0823;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Омовение Рамы
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String string = reader.readLine();
char[] chars = string.toCharArray();
if (chars[0] != ' ') chars[0] = Character.toUpperCase(chars[0]);
for (int i=1; i<chars.length-1; i++) {
if (chars[i] == ' ') chars[i+1] = Character.toUpperCase(chars[i+1]);
}
for (int i=0; i<chars.length; i++) {
System.out.print(chars[i]);
}
/*String str = chars.toString();
System.out.print(str);*/
}
}