有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在java中使用for循环向数组添加名称

我正在编写一个代码,要求用户输入玩家的名字,并将它们存储在数组中。为了做到这一点,我使用了一个for循环,我认为这会更有效,但是,代码似乎做了一些意想不到的事情,我看不出它为什么要这样做。以下是代码和结果:

Scanner reader = new Scanner (System.in);
System.out.print("Please enter the number of players:");
int players = reader.nextInt();

String[] player_name = new String[players+1];//Array to store player names
for (int i = 0; i < players; i++)//Loop to ask players their name
{
    System.out.print("Player " + (i+1) + " please enter your name:\n");//Asks player names one by one
    player_name[i] = reader.nextLine();//Saves the player names to the array
}

当玩家数量为2时,结果如下:

Please enter the number of players:2

Player 1 please enter your name:

Player 2 please enter your name:

wa

BUILD SUCCESSFUL (total time: 23 seconds)

当我在输入“name”wa后按enter键输入播放器2的名字时,程序就结束了


共 (1) 个答案

  1. # 1 楼答案

    nextInt()不会获取行尾字符,即输入数字后的“回车”。相反,您可以使用nextLine()获取整行,然后将其解析为如下所示的整数

    int players = Integer.parseInt(reader.nextLine());