This question already has answers here:
Scanner is skipping nextLine() after using next() or nextFoo()?
(19个回答)
3个月前关闭。
我正在为学校编写代码,但在读取用户输入时遇到问题。我创建了一个新的类进行测试,以查看它是否是我周围的代码,不是。这是简化的代码。
出现以下错误
我已标记出错误发生的位置。为什么会发生这种情况,我该如何解决?
到目前为止,我已经尝试过:
-在第一个
-尝试在每次输入后重置扫描仪
参考:InputMismatchException when using Sacnner nextLine for String
(19个回答)
3个月前关闭。
我正在为学校编写代码,但在读取用户输入时遇到问题。我创建了一个新的类进行测试,以查看它是否是我周围的代码,不是。这是简化的代码。
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