Java 没有这样的元素例外,双线扫描仪

Java 没有这样的元素例外,双线扫描仪,java,nosuchelementexception,Java,Nosuchelementexception,我试图从tableLineScanner中添加两行,这两行是从名为tableScanner的Scanner中获取的 不管怎样,我得到了这些错误 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.invoke

我试图从
tableLineScanner
中添加两行,这两行是从名为
tableScanner
Scanner
中获取的

不管怎样,我得到了这些错误

    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()
,然后您可以再次测试是否有其他行可用

始终这样做:

  • 测试是否有更多数据可用
  • 读取数据
  • 测试是否有更多数据可用

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

    调用
    Scanner#nextLine()
    ,然后您可以再次测试是否有其他行可用

    始终这样做:

  • 测试是否有更多数据可用
  • 读取数据
  • 测试是否有更多数据可用

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

    调用
    Scanner#nextLine()
    ,然后您可以再次测试是否有其他行可用

    始终这样做:

  • 测试是否有更多数据可用
  • 读取数据
  • 测试是否有更多数据可用

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

    调用
    Scanner#nextLine()
    ,然后您可以再次测试是否有其他行可用

    始终这样做:

  • 测试是否有更多数据可用
  • 读取数据
  • 测试是否有更多数据可用


  • 你不能两次调用
    hasNextLine()
    而期望它有两行可用。你必须调用
    next()
    (或者更好的是,
    nextLine()
    ),然后再调用
    hasNextLine()
    。你不能两次调用
    hasNextLine()
    而期望它有两行可用。你必须调用
    next()
    (或者更好,
    nextLine()
    )然后再调用
    hasNextLine()
    。你不能调用
    hasNextLine()
    两次,然后期望它有两行可用。你必须调用
    next()
    (或者更好,
    nextLine()
    )然后再调用
    hasNextLine()
    。你不能调用
    hasNextLine()
    两次,并期望它有两行可用。您必须调用
    next()
    (或者更好,
    nextLine()
    ),然后再次调用
    hasNextLine()
    。由于我是编程的初学者,我不确定如何实现这一点。(我累得要命,没有任何精力,我很快就要睡觉了)如果(tableLineScanner.next(2)){?或者类似的东西?因为我是编程的初学者,我不确定这将如何实现。(我累得要命,没有任何精力,我很快就要睡觉了)如果(tableLineScanner.next(2)){?或者类似的东西?因为我是编程的初学者,所以我不确定这将如何实现。(我非常累,也没有任何精力,我很快就要睡觉了)如果(tableLineScanner.next(2)){?或者类似的东西?因为我是编程的初学者,我不知道如何实现它。(我累得要命,也没有任何精力,我很快就要睡觉了)如果(tableLineScanner.next(2)){?或者类似的东西?
    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)
    }