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)
}