Zah*_*am2 1 java multiline java.util.scanner
我正在尝试在 Java 中获取多行用户输入并将这些行拆分为一个array,我需要它来解决在线法官的问题。我正在使用 aScanner来接受输入。我无法确定输入的结尾。我总是遇到无限循环,因为我不知道输入的大小(即行数)
用空字符串终止输入(单击 Enter)仍然是一个无限循环。下面提供了代码。
public static void main(String[] args) {
ArrayList<String> in = new ArrayList<String>();
Scanner s = new Scanner(System.in);
while (s.hasNextLine() == true){
in.add(s.nextLine());
//infinite loop
}
}
Run Code Online (Sandbox Code Playgroud)
我什至不确定为什么循环第一次执行。我相信hasNextLine()第一次应该是假的,因为还没有输入任何内容。任何帮助或澄清表示赞赏。
小智 5
您可以使用空行作为循环中断器:
while (s.hasNextLine()){ //no need for "== true"
String read = s.nextLine();
if(read == null || read.isEmpty()){ //if the line is empty
break; //exit the loop
}
in.add(read);
[...]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10931 次 |
| 最近记录: |