关于java的Scanner的hasNext()的疑问?

publicbooleanhasNext()返回true假如这个扫描器在输入时有另外的标记,在等待要扫描的输入时,此方法可能阻塞。扫描器将不执行任何输入。importja... public boolean hasNext()

返回true假如这个扫描器在输入时有另外的标记,在等待要扫描的输入时,此方法可能阻塞。扫描器将不执行任何输入。
import java.util.*;
public class SetTest
{
public static void main(String[] args)
{
Set<String> words = new HashSet<>(); // HashSet implements Set
long totalTime = 0;

Scanner in = new Scanner(System.in);
while (in.hasNext())
{
String word = in.next();
long callTime = System.currentTimeMillis();
words.add(word);
callTime = System.currentTimeMillis() - callTime;
totalTime += callTime;
}

Iterator<String> iter = words.iterator();
for (int i = 1; i <= 20 && iter.hasNext(); i++)
System.out.println(iter.next());
System.out.println(". . .");
System.out.println(words.size() + " distinct words. " + totalTime + " milliseconds.");
}
}
没看懂in.hasNext为什么总不是false,API文档没看懂怎么用,求解。。。。。
展开
 我来答
匿名用户
2015-10-26
展开全部
Scanner in = new Scanner(System.in);

用在命令行的输入,不需要判断hasNext
追问
我不是想问如何改程序,而是想知道什么时候hasNext会返回false,难道一直都是返回true吗?API文档的内容我没看懂。在我的测试中,hasNext是会等待用户输入的,作为一个判断的方法,还会等待用户输入,不奇怪吗?
我不是想问如何改程序,而是想知道什么时候hasNext会返回false,难道一直都是返回true吗?API文档的内容我没看懂。在我的测试中,hasNext是会等待用户输入的,作为一个判断的方法,还会等待用户输入,不奇怪吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式