首页 > 解决方案 > 使用 hasNextLine() 方法检查多行

问题描述

我的Scanner.hasNextLine()方法有问题。这是我的代码:

while(scan.hasNextLine()) {         
     definition = scan.nextLine();
     otherInfo = scan.nextLine();
     link = scan.nextLine();
}

如您所见,在 Scanner 检查是否有另一行之后,我将三行作为输入。问题出现在我的文件末尾。Scanner 扫描文件的最后一行并执行 while 循环,即使没有足够的行来完成循环而不会引发NoSuchElementFound异常。

有什么方法可以使用该Scanner.hasNextLine()方法检查文件中是否还有多行?感谢您抽出宝贵的时间以及您能提供的任何帮助。

标签: java

解决方案


一种解决方案是将变量放入诸如 an 的数据结构中ArrayList,然后执行以下操作:

ArrayList<String> arr = new ArrayList<>();
while(scan.hasNextLine()) {         
    arr.add(scan.nextLine());
}

这样,您可以确保有下一行,并且您不必硬编码分配变量。

那么arr[0]将是definitionarr[1]将是otherInfoarr[2]将是link


推荐阅读