Java中的二维数组声明和初始化

时间:2016-04-26 20:53:15

标签: java arrays initialization

String[][] twoD3;
twoD3 = {{"1234", "5435", "2345"}, {"pebbles"}};

上面的数组初始化有什么问题?为什么我会收到编译错误?错误是:

  

令牌上的语法错误; ,,期待。

4 个答案:

答案 0 :(得分:3)

这与数组数组无关。使用单个数组,这个更简单的代码会看到相同的错误:

String[] array;
array = { "foo", "bar" };

你不能这样做 - array initializer只能在声明中单独使用,例如。

String[] array = { "foo", "bar" };

对于正常表达式(在赋值运算符的右侧),您需要array creation expression,使用new关键字并指定数组类型:

String[] array;
array = new String[] { "foo", "bar" };

或者您的确切示例:

String[][] twoD3;
twoD3 = new String[][] {{"1234", "5435", "2345"}, {"pebbles"}};

(或者只是在声明时指定值。)

答案 1 :(得分:1)

您必须在声明它的同一命令中初始化该数组。谁知道为什么会这样,这是java创作者的设计选择。

    String[][] twoD3 = {{"1234", "5435", "2345"}, {"pebbles"}};

如果必须将声明和初始化分开,可以使用new

显式初始化它
    String[][] twoD3;
    twoD3 = new String[][]{{"1234", "5435", "2345"}, {"pebbles"}};

答案 2 :(得分:1)

使用

    String[][] twoD3;

    twoD3 = new String[][]{{"1234", "5435", "2345"}, {"pebbles", "asd", "asd"}};

您需要创建一个新实例。

答案 3 :(得分:1)

String[][] twoD3 = {{"1234", "5435", "2345"}, {"pebbles"}};

以上行是定义和初始化2d数组的方法。