我是Java的新手并且学习它。 我有一个与阵列有关的问题,请你看一下吗?
我得到以下输出:[[Ljava.lang.String; @ 7a982589 来自以下代码:
String[][] multi = new String [][] {
{ "Scenarios", "Description", "1.0", "1.1", "1.2"},
{ "S1", "Verify hotel search", "Y", "Y", "Y"},
};
System.out.println(multi);
如果我放下以下内容:
System.out.println(multi[0][1]);
我得到了正确的输出。 描述
现在,为什么我没有通过“多”变量获得整个数组。
答案 0 :(得分:1)
使用此util方法,因为您有一个2D数组。阅读api Arrays#deepToString(Object[])
Arrays.deepToString(multi);
返回。的“深层内容”的字符串表示形式 指定的数组。 如果数组包含其他数组作为元素,则 字符串表示包含其内容等。这种方法 用于将多维数组转换为字符串。
答案 1 :(得分:0)
您所看到的是数组的默认toString()。如果您想要打印得漂亮,请使用Arrays.deepToString(arr);
答案 2 :(得分:0)
这是因为,不是打印存储在数组中的值,而是打印数组的状态。那是你说的时候
System.out.println(multi);
它含蓄地意味着
System.out.println(multi.toString());
答案 3 :(得分:0)
使用java.util.Arrays.deepToString(multi)
。您所看到的是默认Object.toString()
,因为数组不会覆盖toString()
。
答案 4 :(得分:0)
System.out.println在对象参数上调用toString以获取其文本表示。 Java数组也是对象,它们从java.lang.Object继承toString:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
答案 5 :(得分:0)
multi将保存对数组本身的引用,而multi [0] [1]将引用数组中的元素
答案 6 :(得分:0)
从数组中访问每个项目并将其打印出来:
for(int i=0;i<2;i++){
for(int j=0;j<5;j++){
System.out.println(multi[i][j]);
}
}