String[][] twoD3;
twoD3 = {{"1234", "5435", "2345"}, {"pebbles"}};
上面的数组初始化有什么问题?为什么我会收到编译错误?错误是:
令牌上的语法错误; ,,期待。
答案 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数组的方法。