2D数组,输出不在接近正确的位置

Jon*_*ray 4 java arrays 2d output

import java.util.Scanner;

public class Maze {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int rows = 0;
        int cols = 0;
        String arrayLine = "";
        int counter = 0;

        rows = sc.nextInt();
        cols = sc.nextInt();
        arrayLine = sc.next();

        char[][] array = new char[rows][cols];

        for(int r=0; r<rows; r++){
            for (int c=0; c<cols; c++){
                array[r][c] = arrayLine.charAt(counter);
                counter ++;
            }
        }

        System.out.println(array);
        System.out.println();
    }
}
Run Code Online (Sandbox Code Playgroud)

我带来的信息是:

8
7
000000011111S0000000110101111010101100010110111011010E00
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到的输出是 [[C@252f0999

请帮助,我刚刚开始学习java!

Jac*_*ack 5

array是一种特殊的对象,它没有一个隐式toString()管理数组内容的漂亮打印,所发生的是该对象由作为其哈希码的对象的标准表示来表示.

你应该使用Arrays.toString():

for (int i = 0; i < array.length; ++i)
  System.out.println(Arrays.toString(array[i]));
Run Code Online (Sandbox Code Playgroud)

请注意,您不能直接写,Arrays.toString(array)因为,如文档中所述:

如果数组包含其他数组作为元素,则它们将从Object继承的Object.toString()方法转换为字符串,该方法描述其身份而不是其内容.