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


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

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

标记 上的语法错误 ;,,预期。

这与它是一个数组数组无关。对于这个带有单个数组的简单代码,您将看到相同的错误:

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

你不能这样做 - 数组初始值设定项只能在声明中单独使用,例如

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

对于普通表达式(位于赋值运算符的右侧),您需要一个数组创建表达式,使用 new 关键字并指定数组类型:

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

或者对于您的精确示例:

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

(当然,或者只是在声明点分配值。

使用

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

您需要创建一个新实例。

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

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

您必须使用声明数组的同一命令初始化数组。谁知道这是为什么,这是Java创建者的设计选择。

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

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

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

最新更新