Помогите разобраться со Scanner в Java

377
19 августа 2017, 00:29
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);?

Answer 1

Данная строка

Scanner lineScan = new Scanner(line);

это создание объекта класса Scanner. У класса Scanner есть несколько конструкторов. Данный конструктор получает на вход строку в которой и производится поиск токенов.

Так как разделитель не указан, то используется разделитель по умолчанию - это любой символ (Character) для которого результат вызова Character.isWhitespace равен true.

В вашем случае строка будет разделена на токены из символов разделенных пробелами.

Answer 2

String line = in.nextLine(); //считывает всю введенную строку nextLine(): считывает всю введенную строку while(lineScan.hasNext() )//до тех пор пока не будет введено слово Так как line у вас является строкой, то он получит всю введенную строку и после будет цикл, который повторяется до тех пор пока в строке не будет найдено слово

Answer 3
    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)

READ ALSO
Вставить класс из другого файла

Вставить класс из другого файла

Есть 2 java файлаВ первом имеется публичный класс Selected

221
How can i check is desktop HighContrast turned on [требует правки]

How can i check is desktop HighContrast turned on [требует правки]

I've encountered a problem where I need to know is the "HighContrast" turned on the operating system

229
В phpstorm emmet не корректно работает с html тегами

В phpstorm emmet не корректно работает с html тегами

В phpstorm emmet заменяет угловые скобки в тегах сущностями html

265