“线程中的异常”;“主要”;if statem中的java.util.NoSuchElementException
程序返回:“线程中的异常”;“主要”;if statem中的java.util.NoSuchElementException,java,multithreading,Java,Multithreading,程序返回: if (charIte.next()=='{' || charIte.next()=='}' || charIte.next()=='[' || charIte.next()==']' || charIte.next()=='(' || charIte.next()==')' || charIte.next()=='*' || charIte.next()=='"'
if (charIte.next()=='{' || charIte.next()=='}'
|| charIte.next()=='[' || charIte.next()==']'
|| charIte.next()=='(' || charIte.next()==')'
|| charIte.next()=='*' || charIte.next()=='"'
|| charIte.next()=='/'){
}
问题是什么?每次调用
next()
都会消耗一个令牌。调用它一次,保存并与结果进行比较。像
Exception in thread "main" java.util.NoSuchElementException at line
|| charIte.next()=='(' || charIte.next()==')'
每次调用
next()
都会消耗一个令牌。调用它一次,保存并与结果进行比较。像
Exception in thread "main" java.util.NoSuchElementException at line
|| charIte.next()=='(' || charIte.next()==')'
每次执行charIte.next()时,您都要求读取下一个令牌。 我认为您应该做的是
charIte=charIte.next.chartAt(0)
,然后在if语句中使用ite
char ch = charIte.next();
if (ch == '{' || ch == '}' || ch == '[' || ch == ']' || ch == '('
|| ch == ')' || ch == '*' || ch == '"' || ch == '/') {
// ...
}
每次执行charIte.next()时,您都要求读取下一个令牌。 我认为您应该做的是
charIte=charIte.next.chartAt(0)
,然后在if语句中使用ite
char ch = charIte.next();
if (ch == '{' || ch == '}' || ch == '[' || ch == ']' || ch == '('
|| ch == ')' || ch == '*' || ch == '"' || ch == '/') {
// ...
}
问题是您调用
next()
的次数太多。您需要将其存储在变量中。问题是您调用next()
的次数太多。您需要将其存储在变量中。