public class Exercise58 {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.print("Input a Sentence: ");
String line = in.nextLine();
String upper_case_line = "";
Scanner lineScan = new Scanner(line);
while(lineScan.hasNext()) {
String word = lineScan.next();
upper_case_line += Character.toUpperCase(word.charAt(0)) + word.substring(1) + " ";
}
System.out.println(upper_case_line.trim());
}
}
что обозначает строка Scanner lineScan = new Scanner(line);?
Данная строка
Scanner lineScan = new Scanner(line);
это создание объекта класса Scanner. У класса Scanner есть несколько конструкторов. Данный конструктор получает на вход строку в которой и производится поиск токенов.
Так как разделитель не указан, то используется разделитель по умолчанию - это любой символ (Character) для которого результат вызова Character.isWhitespace равен true.
В вашем случае строка будет разделена на токены из символов разделенных пробелами.
String line = in.nextLine(); //считывает всю введенную строку
nextLine(): считывает всю введенную строку
while(lineScan.hasNext() )//до тех пор пока не будет введено слово
Так как line у вас является строкой, то он получит всю введенную строку и после будет цикл, который повторяется до тех пор пока в строке не будет найдено слово
Scanner lineScan = new Scanner(line);
т.к. line строка, то используется конструктор:
public Scanner(String source)
Constructs a new Scanner that produces values scanned from the specified string.
Parameters: source - A string to scan
https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#Scanner(java.lang.String)
Продвижение своими сайтами как стратегия роста и независимости