gpt4 book ai didi

java - 无此元素异常(exception),双线扫描仪

转载 作者:行者123 更新时间:2023-12-01 23:24:38 24 4
gpt4 key购买 nike

我正在尝试从 tableLineScanner 添加两行,它从名为 tableScannerScanner 获取行。

无论如何,我收到这些错误

    at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at Database.main(Database.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

但正如下面的代码所示,我无法理解为什么会出现此错误。因为我检查他们是否有两条线路可用,但没有参与。

if((tableLineScanner.hasNextLine()&&(tableLineScanner.hasNextLine()))){  //Checks if it exists two available lines.
fieldInput = (tableLineScanner.next() + " " + (tableLineScanner.next().replaceAll("[()]", ""))+",");
tableFields.add(fieldInput);
System.out.println("ADDING: " + fieldInput + " to tableField array list");
}

请帮忙:(

最佳答案

方法 Scanner#hasNextLine() 只是告诉您是否还有一行可用。如果您调用两次,它仍然会告诉您是否还有一条线路可用。您可以调用它n次,但它只会告诉您下一行。

调用 Scanner#nextLine() 然后您可以再次测试是否还有另一条线路可用。

始终这样做:

  1. 测试是否有更多数据可用
  2. 读取数据
  3. 测试是否有更多数据可用
  4. ...
<小时/>
if (tableLineScanner.hasNextLine()) {
String firstLine = tableLineScanner.nextLine();

if (tableLineScanner.hasNextLine()) {
String secondLine = tableLineScanner.nextLine().replaceAll(...);

tableFields.add(firstLine + secondLine);
} else {
// No-second-line error handling goes here
}
} else {
// No-first-line error handling goes here (if any)
}

关于java - 无此元素异常(exception),双线扫描仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20199719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com