抱歉,这听起来太简单了。我是Java的新手。
这是我用来检查hasNextLine()
的一些简单代码。当我运行它时,我无法停止它。我以为,如果您不编写任何输入并按Enter,则可以避免while
循环。
有人可以向我解释hasNextLine()
在这种情况下如何工作吗?
import java.util.*;
public class StringRaw {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String str = sc.nextLine();
}
System.out.print("YOU'VE GOT THROUGH");
}
}
最佳答案
从System.in读取时,默认情况下是从键盘读取的,并且这是一个无限的输入流……它的行数与用户关心的一样。我认为发送EOF的控制序列可能会起作用,例如CTL-Z(或者是CTL-D?)。
查看我的上等ASCII图表... CTL-C是ETX,CTL-D是EOT;这些都应该可以终止文本流。 CTL-Z是一个不起作用的SUB(但它可能会起作用,因为历史上控件是高度主观的解释)。
关于java - 为什么hasNextLine()永远不会结束?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5653338/