当我尝试打印多维数组时获得奇怪的输出

时间:2013-06-24 01:22:14

标签: java arrays

当我尝试打印此程序时,它会在新行中输出null 12次,所以有人能告诉我我做错了什么吗?

我希望这个程序在一行中打印对象及其重量,然后在另一行中打印下一个对象及其重量等等......

public class ojArray {

public static void main(String[] args) {
    //makes a new multidimensial array
    //the first dimension holds the name of the object 
    //the second dimension holds the weight
    //the 4's in this case show the maximum space the array can hold
    String[][] objectList = new String[4][4];

    objectList[1][0] = "Teapot";
    objectList[0][1] = String.valueOf(2);

    objectList[2][0] = "Chesterfield";
    objectList[2][2] = String.valueOf(120);

    objectList[3][0] = "Laptop";
    objectList[3][3] = String.valueOf(6);

    //printing the array
    for (int i = 1; i < objectList.length; i++) {
        for (int j = 0; j < objectList.length; j++) {
            int k = 1;
            System.out.println(objectList[1][1]);
        }
    }
}

}

4 个答案:

答案 0 :(得分:1)

您正在打印[1][1]而不是[i][j]

尝试:

for (int i = 1; i < objectList.length; i++) {
    for (int j = 0; j < objectList.length; j++) {
        int k = 1;
        System.out.println(objectList[i][j]);
    }
}

哦是的,你初始化[0][1]而不是[1][1]。尝试:

objectList[1][0] = "Teapot";
objectList[1][1] = String.valueOf(2);

答案 1 :(得分:1)

要在同一行上打印,每次在内循环中都不能使用println()方法,要么为内循环中的每个对象创建一个字符串,然后将println放在外循环中,或者在内循环中使用print()然后在外循环中打印一个新行。

for (int i = 1; i < objectList.length; i++) 
{
        String output = "";
        for (int j = 0; j < objectList.length; j++) 
        {
            int k = 1;
            output += objectList[i][j] + " ";
        }
        println(output);
}

答案 2 :(得分:0)

在打印数组时使用变量,而不是[1][1]尝试[i][j]

答案 3 :(得分:0)

在你的for循环中,你只需打印你从未初始化的objectList[1][1],所以它是null。你循环3 * 4 = 12次,所以你得到12个null。如果您打印objectList[i][j],您将获得数组的内容。