我一直在看这个......我甚至把item = null放进去看看会发生什么......但是这段代码一直停留在无限循环中。 item始终等于null,并且应该从循环开始,但它会继续运行。
ArrayList<String> collection = new ArrayList();
Scanner arrayRead = new Scanner(new FileReader("SalesStar.txt"));
//iterate through file to put into Arraylist
String item = null;
while( item != null ) {
item = arrayRead.next();
collection.add(item);
}
arrayRead.close();
System.out.println(collection);
System.out.println(item);
答案 0 :(得分:2)
它不会进入循环
String item = null;
在此行中您将项目设置为空
while( item != null )
但是在下一行你设置条件项!= null whill总是false,所以它永远不会进入循环
要使其正常工作,您可以执行以下操作(正如所有已解释的那样)
while( arrayRead.hasNext() ) {
item = arrayRead.next();
collection.add(item);
}
答案 1 :(得分:0)
尝试此更改
while(arrayRead.hasNext())
作为旁注,在我看来,这看起来更好
Scanner arrayRead = new Scanner(new File("SalesStar.txt"));
答案 2 :(得分:0)
当循环无限时,我无法看到任何情况。因此,检查的最佳条件是检查是否扫描hasNext()元素。
String item = null;
while( arrayRead.hasNext() ) {
item = arrayRead.next();
collection.add(item);
}
或者如果您想继续使用当前逻辑,String应初始化为
String item = arrayRead.next();