【问题标题】:How to exit from the scanner.hasNextLine() loop in java如何在java中退出scanner.hasNextLine()循环
【发布时间】:2020-09-24 06:09:33
【问题描述】:

我想从包含多行的终端读取以下输入(作为单个流)。

INSERT KEY adam key
TURN KEY adam
ENTER HOUSE adam
INSERT KEY pat foobar
TURN KEY pat
ENTER HOUSE pat
WHO'S INSIDE?

我正在使用以下代码来读取它们并添加到数组列表中。

 ArrayList<String> instructions_list = new ArrayList<String>();
 String input_line = "";
 while (sc.hasNextLine()) {
     input_line = sc.nextLine();
     instructions_list.add(input_line);
     System.out.println(input_line);
 }

System.out.println("Outside Loop");

这会正确地逐行打印。但似乎它并没有超出while循环。如何退出 while 循环并运行下一行代码?

请提供您的建议。

【问题讨论】:

  • 在控制台输入 Ctrl/d 或 Ctrl/z,具体取决于您的操作系统。
  • 如何在控制台输入包含换行符的文本?不用输入一行然后按ENTER键吗?

标签: java user-interface arraylist while-loop java.util.scanner


【解决方案1】:

你必须提供一个退出条件,循环应该终止,即在采取一些固定数量的行之后或遇到一些特定的单词等之后

或者你可以试试:

ArrayList<String> instructions_list = new ArrayList<String>();
 String input_line = "";
 while (sc.hasNextLine()) {
     input_line = sc.nextLine();
     if(input_line.equals(""))
        break;
     instructions_list.add(input_line);
     System.out.println(input_line);

当遇到空行时,循环将终止

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 2015-01-18
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多