Проблема с чтением многострочного ввода - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь взять пользовательский ввод и немного его изменить, но столкнулся с проблемой, когда пользователь вводил несколько строк.Чтобы исправить это, я попытался:

public static String getInput() {
        Scanner sc = new Scanner(System.in);
        String input = "";

        System.out.println("Awaiting input...");

        if(sc.hasNextLine()) {
            System.out.println("Combining Input to One Line...");
            while(sc.hasNextLine()) {
                //System.out.println(sc.hasNextLine());
                //System.out.println("check");

                input.concat(sc.nextLine() + " ");

                //System.out.println(sc.hasNextLine());
                //System.out.println("check2");
                //System.out.println("check3");

            }
        }
        sc.close();
        return input;
    }

Казалось, что это работает, пока не дойдет до последней строки ввода, где (после небольшой отладки) он застрял, пытаясь прочитать sc.hasNextLine ().Однако это очень странно, потому что я поместил точно такой же код в онлайн-компилятор, где он работает просто отлично, за исключением того факта, что ввод должен быть сделан заранее.Это не ждет, пока не будет никакого ввода.Я не очень опытный в Java, поэтому я мог бы использовать некоторую помощь.

1 Ответ

0 голосов
/ 05 мая 2019

Если бесконечный цикл - ваша проблема, то ее можно решить, отправив специальный маркер EOF (Ctrl-D в Unix, обычно Ctrl-Z в Windows).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...