有人可以解释为什么我收到此错误
Type mismatch: cannot convert from String to String[][][]
在这段代码中?
String [][][][] names = {"zach","zach","zach","zach"};
答案 0 :(得分:5)
变量
String[][][][] names
是表示四维字符串数组的变量 - 即字符串数组数组的数组。文字
{"zach","zach","zach","zach"};
是一个包含四个元素的单维字符串数组。注意区别 - 四个元素的数组是String[]
,而不是String[][][][]
。一维数组可以包含任意数量的元素。如果要表示类似2D或3D网格的内容,则向数组添加更多维度非常有用,但这并不是表示数组包含更多元素的正确方法。
要解决此问题,您需要编写
String[] names = {"zach","zach","zach","zach"};
这确实可以正常工作。
如果你想要一个2D数组的字符串,你可以这样做:
String[][] nameGrid = {
{"Alice", "Bob", "Charlie"},
{"David", "Eliza", "Fred"},
{"Gary", "Helen", "Isaac"},
};
这里,数据是二维的 - 您选择哪个行作为第一个数组索引,哪个列作为第二个数组索引。请注意每个行和列中的数组元素的数量如何与数组中的维数无关,因为这些是不同的概念。
希望这有帮助!
答案 1 :(得分:0)
如果你想要一维数组;
String[] names = {"zach","zach","zach","zach"};
如果你想要一个4D阵列;
// Only filling one dimension of the 4D array
String [][][][] names = {{{{"zach","zach","zach","zach"}}}};
参考; http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx