Java将二维数组传递给方法 publicstaticvoidmain{ 字符串[][]book=新字符串[100][6]; 对于(int i=0;i

Java将二维数组传递给方法 publicstaticvoidmain{ 字符串[][]book=新字符串[100][6]; 对于(int i=0;i,java,arrays,multidimensional-array,parameter-passing,Java,Arrays,Multidimensional Array,Parameter Passing,arrayMethod方法的输出是[[Ljava.lang.String;@639facbc[Ljava.lang.String;@8059dbd[Ljava.lang.String;@28b6e768[Ljava.lang.String;@1271ba,…] 问题是,在arrayMethod中,我无法访问二维数组数据,哪里会有问题?它正在做您想要做的事情:您假装(第一级)数组是一个列表(属于数组),然后打印其中的toString(),看起来像[Ljava.lang。String@pointer

arrayMethod方法的输出是[[Ljava.lang.String;@639facbc[Ljava.lang.String;@8059dbd[Ljava.lang.String;@28b6e768[Ljava.lang.String;@1271ba,…]


问题是,在arrayMethod中,我无法访问二维数组数据,哪里会有问题?

它正在做您想要做的事情:您假装(第一级)数组是一个
列表(属于
数组
),然后打印其中的
toString()
,看起来像
[Ljava.lang。String@pointer
。您可能希望这样:

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));
}

正如Alya'a Gamal所说,如果你想在字符串数组中放入一个int,你需要解析它:
book[i][j]=Integer.toString(i);
。 然后,如果要显示阵列,则需要运行Think it,例如:

System.out.println(Arrays.deepToString(array));
publicstaticvoidarraymethod(字符串[][]数组){
for(int i=0;i
您可以使用
数组.toString
打印一维字符串数组,但不能使用
数组.toString
直接打印二维数组

在console中打印2D字符串数组有两种方法

方式#1==>

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
        }

    }
System.out.println(Arrays.deepToString(array));
方式#2==>

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
        }

    }
System.out.println(Arrays.deepToString(array));

我在这里看到三个问题:

(1) 。主方法的签名看起来很奇怪。这会引发编译问题

 for(String[] arr: array)
 {
        System.out.println(Arrays.toString(arr));
 }
(2) 。在以下代码中:

public static void main(String args[])
{
// Your code here
}
(3)

数组
类中使用以下静态方法在控制台上打印2D数组的元素

 book[i][j] = Integer.toString(i);
希望这有帮助


+1用于隔离问题。

要编译,必须使用book[i][j]=“i”;main方法的签名如何?有一个问题,只传递1(最后一个)数组元素,其他所有元素都是
null