java无法扫描字符串或整数
所以我试图计算一个简单的程序,它有n个Person类型的对象,每个人都有名字、身份证、护照和驾驶执照
事情是这样的:
public class Person {
private String name;
private int id;
private int passport;
private int licence;
Person(String name, int id, int passport, int licence) {
this.name=name;
this.id=id;
this.passport=passport;
this.licence=licence;
}
}
public class Main {
public static void main(String[] args) {
Scanner jin=new Scanner(System.in);
int n=jin.nextInt(), i;
Person[] dudes=new Person[n];
for(i=0; i<n; i++) {
String name=jin.nextLine();
int id=jin.nextInt();
int passport=jin.nextInt();
int licence=jin.nextInt();
dudes[i]=new Person(name, id, passport, licence);
}
}
}
但是,当我为字符串名称输入一个值时,会出现以下错误:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at test.Main.main(Main.java:20)
有什么想法吗
# 1 楼答案
如果你把
String name = jin.nextLine();
改成String name = jin.next();
,它会按照你拥有它的方式工作一种更简单的方法是在输入int后清除缓冲区,比如名字和姓氏