我正在尝试从.ppm文件中获取数据并将滤镜放在图像上。
由于某些原因,当我打印图像的高度和宽度时,它会正确返回值,但是当我将数据放入2D数组中时,即使高度与宽度相同,它也会返回高度与宽度相同。这是相关代码的片段。初始化Color 2D阵列与我有什么关系吗?

    Color[][] totalData = null;
    int x = 0;
    int y = 0;

    while (fileScanner.hasNext()) {
        // Handles comments
        String line = fileScanner.nextLine();
        if ((line.startsWith("#"))) {
            continue;
        }

        width = fileScanner.nextInt();
        height = fileScanner.nextInt();
        System.out.println(width); //4
        System.out.println(height); //3

        //Skips the Max color value
        fileScanner.next();

        totalData = new Color[height][width];
        System.out.println(totalData[0].length); //4
        System.out.println(totalData[1].length); //4

最佳答案

您正在打印数组第一行和第二行的长度,并且两者均为4,因为这是2D数组的宽度。

要查看高度和宽度(不相同),您应该打印:

System.out.println(totalData.length); // the number of rows (3)
System.out.println(totalData[0].length); // the length of each row (4)

关于java - 2D数组未正确声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42050165/

10-10 10:14