我有这个:
String data[][] = null;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
data[i][j]= "test";
}
}
但它不起作用。变量数据为空。
答案 0 :(得分:7)
你的第一行应该是
String data[][] = new String[10][10];
答案 1 :(得分:4)
因为你必须先初始化你的数组。将数组视为C / C ++中的“指针”。你必须写String data[][] = new String[10][10];
答案 2 :(得分:3)
java中的数组是一种对象,必须使用new
进行分配。
替换
String data[][] = null;
与
String data[][] = new String[10][10];
答案 3 :(得分:3)
当然是数据为空,你明确这么说。如果你认为那样
String data[][] = null;
应该初始化一个二维数组,每个值为null,你错了。
您需要的是例如:
String data[][] = new String[10][10]
这个初始化了一个包含100个元素的二维数组,也就是说:一个包含10个元素的数组,每个元素都是一个包含10个元素的数组。
Java中的数组是一个对象,就像任何其他对象一样,因此必须用new初始化。示例中的data
是对数组的引用,该数组本身包含对其他数组(=对象)的引用。
答案 4 :(得分:1)
那是因为你已经为它指定了null。您需要创建一个数组并将其分配给数据。试试这个:
String data[][] = new String[10][10];
答案 5 :(得分:0)
数组将值指定为引用类型。要在其中分配任何值,您必须首先创建它的实例,否则它将给出错误。所以你必须写下以下内容:
String data[][] = new String[10][10];
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
data[i][j]= "test";
}
}
答案 6 :(得分:0)
String data[][]
只是一个可以容纳二维字符串数组的引用。由于您尚未向引用添加任何对象,因此它指向null
所以
String data[][] = new String[10][10];
将对象添加到引用中。
答案 7 :(得分:0)
你没有初始化你的数组。您可以根据需要定义数组大小,如给出示例
2d数组它就像表行和列一样,你必须初始化第一行大小然后列大小
这是初始化的例子
data[][] = new String[5][]; // after this you need to define for 2d array like this
data[0] = new String[2];
data[1] = new String[3];
data[2] = new String[1];
如上所述,该列是动态的,您可以根据需要定义列大小 另一个是
data[][] = new String[5][3] then each row has 3 column