首页 > 解决方案 > 读取多行输入的问题

问题描述

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

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 方面不是很有经验,所以我可以使用一些帮助。

标签: javaeclipse

解决方案


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


推荐阅读