gpt4 book ai didi

java - 为什么 println() 方法被执行两次而不是一次?

转载 作者:行者123 更新时间:2023-12-02 10:16:57 24 4
gpt4 key购买 nike

public class HashMapTest2 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("Enter total player");
Integer p = s.nextInt();
System.out.println("Enter total Team");
Integer t = s.nextInt();
List<String> listp = new ArrayList<>();
for (int i = 1; i<p; i++){
System.out.println("Enter Player name "+i);
listp.add(s.nextLine());
}

List<String> listt = new ArrayList<>();
for (int i = 1; i<t; i++){
System.out.println("Enter Team name "+i);
listt.add(s.nextLine());
}
}
}

我得到一些奇怪的输出,如下所示:

Enter total player
3
Enter total Team
2
Enter Player name 1
Enter Player name 2
pari
Enter Team name 1

为什么程序要求我输入玩家姓名两次?第一次它要求我输入玩家姓名两次,我不知道为什么。有什么办法可以解决这个问题吗?

最佳答案

当您使用 nextInt() 时,会读取整数值,但不会读取行尾字符(Return/Enter),请更改代码以使用 nextLine() 如下,以便正确处理。

public static void main(String... obj) {
Scanner s = new Scanner(System.in);
System.out.println("Enter number of Players");
Integer p = Integer.valueOf(s.nextLine());
System.out.println("Enter number of Teams");
Integer t = Integer.valueOf(s.nextLine());

List<String> listp = new ArrayList<>();
for (int i = 0; i < p; i++){
System.out.println("Enter Player name " + i);
listp.add(s.nextLine());
}
List<String> listt = new ArrayList<>();
for (int i = 1; i < t; i++){
System.out.println("Enter Team name " + i);
listt.add(s.nextLine());
}
}

关于java - 为什么 println() 方法被执行两次而不是一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54619400/

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