如何从java中的scanner.hasNextLine()循环中退出

问题描述 投票:0回答:1

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

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循环并运行下一行代码?

请提供您的建议。

java user-interface arraylist while-loop java.util.scanner
1个回答
2
投票

您必须提供退出条件,在该条件下循环应终止,即在固定行数后或遇到某些特定单词后终止,等

或者您可以尝试:

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);

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

© www.soinside.com 2019 - 2024. All rights reserved.