我是Java的新手,正在尝试解决初学者在文本文件中计算单词的问题。我想出了下面的代码。但是,当我尝试运行代码时,编译永远不会返回结果。由于我的知识有限,我真的在努力解决这个问题。有人可以帮帮我吗?在此先感谢您的帮助!
public class WordsCount{
public static void main(String[] args) {
int countingWords = 0;
try(Scanner sc1 = new Scanner(new BufferedReader(new FileReader("xanadu.txt")))){
while(sc1.hasNext()){
sc1.next();
countingWords++;
}
} catch (FileNotFoundException e){
System.out.println("File not found");
}
System.out.println(countingWords + " words are in the xanadu.txt file");
}
}
xanadu.txt contents:
In Xanadu did Kubla Khan
A stately pleasure-dome decree:
Where Alph, the sacred river, ran
Through caverns measureless to man
Down to a sunless sea.
答案 0 :(得分:1)
添加
sc1.next();
在你的while循环中。
我运行你的设置,然后回复25个字。当你连续调用hasNext()而不调用next()时,扫描程序永远不会在缓冲区中向前移动。这就是代码永远不会脱离while循环的原因。