Java多维数组,如何获取要打印的列数?

时间:2015-11-30 12:20:54

标签: java arrays multidimensional-array

我的代码如下,我的任务是

enter image description here

正如你在我的代码中看到的,我将数组设置为[playerCount] [5],我认为这会导致问题,但我不知道如何解决它。有时可能有5列,有时可能只有2,3,4列。还有多行,可以是1,2,3,无穷大。我似乎无法弄清楚如何获得列中行数的总和,所以稍后我可以在这些行中添加值以获得总和。

import java.util.Scanner;

class ASgn8 
{

public static void main(String[] args)
{

    Scanner scan = new Scanner(System.in);

    System.out.print("How many players? ");
    int playerCount = scan.nextInt();
    scan.nextLine();
    String[] playerNames = new String[playerCount];
    Die[][] diceArray = new Die[playerCount][5];

    for(int i = 0; i < playerCount; i++)
    {
        System.out.print("What is your name: ");
        playerNames[i] = scan.nextLine();
    }

    int randomNum = (int)(Math.random() * (30-10)) +10;
    System.out.println(randomNum);
    int userChoice = 1;

    for(int i = 0; i < playerCount; i++)
    {

        int j=0;
        System.out.println(playerNames[i] + "'s turn!");

        while(userChoice != 2 && j < 5) 
        {
            Die roll2 = new Die();
            roll2.roll();
            System.out.println(roll2);              
            diceArray = new Die[i][j];              
            System.out.println("Again? 1= yes, 2=no");
            userChoice = scan.nextInt();
            j++;

        }

        if(userChoice == 2)
        {
            userChoice = 1;

        }

    }

}   
}

2 个答案:

答案 0 :(得分:1)

我不太清楚你的意思,但是你会得到diceArray.length的列和diceArray[0].length的行,这些列需要存储在数组中的一个数组并告诉它的大小。多维数组实际上并不是多维数组,但更像是包含数组的数组,所以你需要得到一个内部数组来告诉它的大小。

但是,你可能应该使用ArrayList [],因为普通的java数组不能调整大小。 Arraylists可以,所以你可以做

ArrayList<int> diceArray = new ArrayList()[playerNum]

然后用for循环初始化ArrayLists,你将获得diceArray [playerNum] .size()的大小。检查示例Live example教程。

答案 1 :(得分:0)

看看这个例子:

String[][] array = new String[5][6];
System.out.println(array.length);
System.out.println(array[0].length);

我认为一切都会很清楚。