gpt4 book ai didi

java - 对于以下代码,即使我提供正确的输入,我也会收到错误的 InputMismatch 异常

转载 作者:行者123 更新时间:2023-11-30 03:18:39 24 4
gpt4 key购买 nike

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class Person {
public enum Sex {
Male, Female
}
String Name;
int Age;
Sex Gender;
String EmailAddress;
public int getAge() {
return Age;
}
static public Person getInstance() {
return new Person();
}
public String getPerson() {
return Name;
}
}
public class TestPerson {
public static void main(String...args) {
List list = new ArrayList();
list.add(Person.getInstance());
list.add(Person.getInstance());
Scanner s = new Scanner(System. in );
for (int i = 0; i < 1; i++) {
System.out.println(list.get(i).Name = s.nextLine());
System.out.println(list.get(i).Age = s.nextInt());
}
s.close();
}
}

最佳答案

正如埃里克爵士所说,使用泛型:

List<Person> = new ArrayList<Person>();

另外:当您在 nextInt(); 之后使用 nextLine(); 方法时,

nextLine(); 将采用 "\n" 作为下一次迭代的输入,因为 nextInt(); 仅获取下一个整数标记,而不是 Enter 按钮 ("\n"),然后由 nextLine(); 获取> 在您的 code 案例中的下一个迭代

要么使用

  • Integer.parseInt(nextLine()); 而不是 nextInt();

或者

  • 只需使用 nextLine(); 跳过 "\n",如下所示:

     public static void main(String...args) {
    List<Person> = new ArrayList<Person>();
    list.add(Person.getInstance());
    list.add(Person.getInstance());
    Scanner s = new Scanner(System. in );
    for (int i = 0; i < 1; i++) {
    System.out.println(list.get(i).Name = s.nextLine());
    System.out.println(list.get(i).Age = s.nextInt());
    s.nextLine(); //skips the "\n"
    }
    s.close();
    }

关于java - 对于以下代码,即使我提供正确的输入,我也会收到错误的 InputMismatch 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31895755/

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