读取多行输入的问题

时间:2019-05-05 17:14:46

标签: java eclipse

我试图接受用户输入并对其进行一些修改,但是当用户输入多行时遇到了问题。为了解决这个问题,我尝试过:

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 :(得分:-1)

如果无限循环是您的问题,则可以通过发送特殊的EOF标记(在Unix上为Ctrl-D,在Windows上通常为Ctrl-Z)来解决。