[英]Why is the println() method being executed twice instead of once?
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());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.