В общем , ЧТО ПОНЯЛ( Но это не точно) - for (String word : string.split("\\b")) - значит эта кусочек кода разделяет строку на подстроки , вроде как бы понимаю что \b находит границы слов до пробела(если это не так то объясните , как). Дальше , word.substring(0, 1).toUpperCase() - берем слово и у него берем 1-ую букву и переводим ее в верхний регистр.
что НЕ понял - зачем перед \b еще одни \ , я как бы увидел разницу что с 1 слешем только 1-ое слово с большой буквы , а с 2-мя все слова но почему так(объясните простым языком , просто я вроде нашел ответ но какой то супер замудренный) , И теперь главное что совсем не понятно -concat(word.substring(1))); конкат если я не ошибаюсь мы просто прилепляет или соединяет строки но что внутри него делает substring(1) - это слово или буква , в общем тут как в тумане ...
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();
for (String word : string.split("\\b"))
{
System.out.print(word.substring(0, 1).toUpperCase().concat(word.substring(1)));
}
//напишите тут ваш код
}
}