为什么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

回到顶部