Как остановить сканирование после ввода определенной строки? - PullRequest
0 голосов
/ 20 марта 2020

Я хочу создать программу, которая останавливает сканирование только строк, пока я не введу «0» в консоли, как мне это сделать?

Я предполагаю, что могу использовать do, пока l oop, но я не знаю, что поставить в условие while ().

    Scanner scan = new Scanner(System.in);

    do {

        String line = scan.nextLine(); 

        //do stuff

    } while(); //what do i put in here to stop scanning after i input "0"

Заранее спасибо, я новичок в Java и OOP в целом.

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Вы можете использовать while l oop вместо do-while l oop. Определите строку, которая будет инициализирована внутри while l oop. На каждой итерации мы присваиваем строку для сканера # nextLine и проверяем, не равна ли эта строка 0. Если это так, while-l oop предотвращает итерацию.

        Scanner scan = new Scanner(System.in);

        String line;

        while (!(line = scan.nextLine()).equals("0")) {
            System.out.println("line: " + line);
        }
0 голосов
/ 20 марта 2020

Вам не нужно использовать l oop, так как вы сказали, что хотите остановить ввод, когда по умолчанию нажимается 0 для nextLine (), ввод останавливается, когда пользователь нажимает клавишу ввода, потому что это разделитель, поэтому просто измените разделитель

Scanner scanner = new Scanner(System.in);
scanner.useDelimiter("0");   //regex
String s = scanner.next(); // no matter what user enters the s will contain the input before 0
...