public static void main{
String [][] book = new String[100][6];
for(int i = 0; i < 1; i++) {
for(int j = 0; j < 5; j++) {
book[i][j] = i;
}
}
arrayMethod(book);
}
public static void arrayMethod(String[][] array){
System.out.println(Arrays.asList(array));
}
arrayMethod方法输出 [[Ljava.lang.String; @ 639facbc,[Ljava.lang.String; @ 8059dbd,[Ljava.lang.String; @ 28b6e768,[Ljava] .lang.String; @ 1271ba,....
问题是在arrayMethod中我无法访问2维数组数据,哪里可以出问题?答案 0 :(得分:4)
它正在做你想要的:你假装(第一级)数组是List
(Array
),然后打印toString()
那些,看起来像[Ljava.lang.String@pointer
这样的东西。你可能想要这个:
System.out.println(Arrays.deepToString(array));
答案 1 :(得分:2)
正如Alya'a Gamal所说,如果你想在一个String数组中放入一个int,你需要解析它:book[i][j] = Integer.toString(i);
。
然后,如果你想显示你的数组,你需要运行它,例如:
public static void arrayMethod(String[][] array){
for(int i = 0; i < array.length;i++) {
for(int j = 0; j < array[i].length;j++)
System.out.println(array[i][j]); // a stringBuilder would be better than to print inside the loop
}
}
答案 2 :(得分:2)
您可以使用Arrays.toString
打印1-D字符串数组,但是不能使用Arrays.toString
直接打印2-D数组。
您可以通过两种方式在控制台中打印2D字符串数组。
方式#1 ==&gt;
System.out.println(Arrays.deepToString(array));
方式#2 ==&gt;
for(String[] arr: array)
{
System.out.println(Arrays.toString(arr));
}
答案 3 :(得分:2)
我在这里看到三个问题:
(1)。主方法的签名看起来很奇怪。这会引发编译问题。
public static void main(String args[])
{
// Your code here
}
(2)。在以下代码中:
for(int i = 0; i < 1; i++) {
for(int j = 0; j < 5; j++) {
book[i][j] = i;
}
}
book[i][j] =i; // Here you are trying to insert an int in place where a String is required.
这将再次导致编译时问题。
您可以按照以下方式更正:
book[i][j] = Integer.toString(i);
(3)。
在Arrays
类中使用以下静态方法在控制台上打印2D数组的元素。
System.out.println(Arrays.deepToString(array));
希望这有帮助。
+1用于隔离问题。