我有一个while循环,它检测sc.hasNext()是否为true,并接受输入的列表,并将其一一添加到列表textEditor中。
while (sc.hasNext()) {
String line = sc.nextLine();
if (!(line.isEmpty())){
textEditor.addString(line);
}
}
sc.close();
textEditor.printAll();
}
}
但是,当我输入字符串列表时,例如
oneword
two words
Hello World
hello World
循环不会停止,不会调用方法printAll()。我该如何退出while循环?
答案 0 :(得分:1)
break
语句中没有while
,因此您将陷入无限循环。
我用简单的System.out.println
修改了您的示例。看一下新的while
条件,当接收到空String时,它将退出while语句:
Scanner sc = new Scanner(System.in);
String line;
while (!(line = sc.nextLine()).isEmpty()) {
System.out.println("Received line : " + line);
//textEditor.addString(line);
}
sc.close();
System.out.println("The end");
答案 1 :(得分:0)
您可以使用break语句摆脱循环:
while (sc.hasNextLine()) {
String line = sc.nextLine();
if (!(line.isEmpty())){
textEditor.addString(line);
} else {
break;
}
}
textEditor.printAll();
(顺便说一句,不要关闭Java中的stdout,stderr或stdin:System.out,System.err和System.in)