所以我正在开发一个程序,它将使用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()方法有关。有什么想法吗?
答案 0 :(得分:0)
当words
返回false时,hasNext
中的循环结束。除非你在调用sentences
之前做某事,否则它仍会在那里返回false,并且永远不会进入循环。