gpt4 book ai didi

java - 无法扫描字符串或整数

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:02:08 26 4
gpt4 key购买 nike

因此,我正在尝试计算一个简单程序,该程序具有 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)

有什么想法吗?

最佳答案

如果您将 String name = jin.nextLine(); 更改为 String name = jin.next(); 它会按照您的方式工作。

一个更简单的方法是在为名字和姓氏输入 int 后清除缓冲区。

for(i=0; i<n; i++)
{
jin.nextLine(); // add this to clear the input from before.
String name=jin.nextLine();
int id=jin.nextInt();
int passport=jin.nextInt();
int licence=jin.nextInt();

dudes[i]=new Person(name, id, passport, licence);
}

关于java - 无法扫描字符串或整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47561319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com