当我尝试打印此程序时,它会在新行中输出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]);
}
}
}
}
答案 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]
,您将获得数组的内容。