我正在为学校编写代码,在读取用户输入时遇到问题。我创建了一个新的类进行测试,以查看它是否是我周围的代码,不是。这是简化的代码。
import java.util.*;
public class practice {
public static void main(String[] args){
Scanner kb = new Scanner(System.in) ;
String fullname = kb.nextLine();
int age = kb.nextInt();
String program = kb.nextLine();
* int number = kb.nextInt();
System.out.println(fullname);
System.out.println(age);
System.out.println(program);
System.out.println(number);
}
}
出现以下错误
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.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at practice.main(practice.java:8)
我已标记发生错误的位置。为什么会发生这种情况,我该如何解决?
到目前为止,我已经尝试过:-在第一个kb.nextLine()
之后添加了kb.nextLine()
-尝试在每次输入后重置扫描仪]
Scanner kb = new Scanner(System.in) ;
String fullname = kb.nextLine();
int age = kb.nextInt();
kb.nextLine();
String program = kb.nextLine();
int number = kb.nextInt();
kb.nextLine();
System.out.println(fullname);
System.out.println(age);
System.out.println(program);
System.out.println(number);
参考:InputMismatchException when using Sacnner nextLine for String
以下代码可以正常工作(我已经测试过)