为什么hasNextLine()永远不会结束?
抱歉,这听起来太简单了。我是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 不应该
工作(但可能,因为控制在历史解释非常主观)。
以上是 为什么hasNextLine()永远不会结束? 的全部内容, 来源链接: utcz.com/qa/433048.html