Scanner.next() - 线程"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$1.run(URLClassLoader.java:202)

那是什么原因?

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

11.2019 UPDATE:

我尝试在不同的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");

添加" like this ->

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

问题出在下一行:

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

Java Scanner方法next()不接受随机字符串作为其参数。它可以不带参数,也可以带参数,如String pattern或pattern pattern。

下面是next()方法的声明:
public String next()  
public String next(String pattern)  
public String next(Pattern pattern)