Scanner.next() - 线程异常 "main" java.util.InputMismatchException

Scanner.next() - Exception in thread "main" java.util.InputMismatchException

大家好,我是个新手。请帮助我。

节目是:

import java.util.Scanner.*;
import java.lang.*;
public class HexToDecimalFromWeb{
public static void main (String [] args) {
    Scanner input = new Scanner(System.in);
    printHeader();
    while (true) {
        String hex = input.next("Enter a hexadecimal number: ");
        int dec = Integer.parseInt(hex, 16);
        if (dec == SENTINEL) {
            break;
        }
        System.out.println(hex + " hex = " +  
         Integer.toString(dec)+ "decimal");
    }
}
private static void printHeader() {
    System.out.println("This program converts hexadecimal to decimal.");
   System.out. println("Enter 0 to stop.");
}
private static final int SENTINEL = 0;
}

我得到的错误是这样的:

java.lang.NoClassDefFoundError: HexToDecimalFromWeb
Caused by: java.lang.ClassNotFoundException: HexToDecimalFromWeb
at java.net.URLClassLoader.run(URLClassLoader.java:202)

这是什么原因?

我认为这可能是 Eclipse 的问题,因为其他一些程序也不会运行。

2019 年 11 月更新:

我尝试在另一个 IDE 中再次执行此代码,这不是 Eclipse 的问题。我得到的错误是:

Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.next(Scanner.java:1525)
at HexToDecimalFromWeb.main(HexToDecimalFromWeb.java:12)

此行已损坏:

 Integer.toString(dec)+decimal");

像这样添加“->

 Integer.toString(dec)+"decimal");

问题出在下面一行:

String hex = input.next("Enter a hexadecimal number: ");

Java 扫描器方法 next() 不接受随机字符串作为其参数。它可以没有参数,也可以有一个参数,例如 String pattern 或 Pattern pattern。

这些是 next() 方法的声明:

public String next()  
public String next(String pattern)  
public String next(Pattern pattern)