如何多次使用hasNext

时间:2014-08-28 23:17:27

标签: java.util.scanner

所以我正在开发一个程序,它将使用Scanner来读取文本文件并计算单词,句子等的数量。我的代码有效,但只是在某种程度上,这让我很困惑。我有这两个类,

public void sentences()
{
    while(text.hasNext())
    {
       // code to check for and count sentence ends 
    }
}

public void words()
{
    while(text.hasNext())
    {
       // code to count for words
    }
}

混淆(对我而言)部分是当我运行这两种方法时它们起作用。但是,(顺序并不重要)第二个不起作用。所以如果我要写

w.words();
w.sentences();

句子方法什么都不做,给我一个值0.我用system.out.println()做了一些测试,句子方法会被调用,但它会跳过循环。所以我觉得与hasNext()方法有关。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

words返回false时,hasNext中的循环结束。除非你在调用sentences之前做某事,否则它仍会在那里返回false,并且永远不会进入循环。