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)
大家好,我是个新手。请帮助我。
节目是:
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)