Ума и текущих знаний хватило пока только на такой вариант. Но при проверке всплыло новое условие, что в качестве разделителя может быть больше одного пробела (и почему это нельзя было сразу написать в условии...). Можно как-то дополнить текущий код, чтобы и это условие проходило?
package com.javarush.task.task08.task0823;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
/*
Омовение Рамы
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String string = reader.readLine();
String [] split = string.split(" ", 1000000);
for (int i = 0; i < split.length; i++) {
split[i] = split[i].substring(0, 1).toUpperCase() + split[i].substring(1);
}
String result = String.join(" ", split);
System.out.println(result);
}
}