Java二维数组输出不自动补零,求解!

package com.baidu.数组;

public class Demo转换稀疏数组练习
{
    public static void main(String[] args)
    {
        int array1[][] =
                {
                {1,0,89},
                {0,9,0,89,78,0,0,9},
                {4,6,8,0,0,0,8},
                {0,2,3,4,5},
                {0,0,0,5},
                {0,0,0,0,0,7},
                {0,0,0,0,0,9},
                {0,0,0,0,0,0,13},
                {0,0,0,0,67,0,0,0,0},
                {}
                };//定义一个十行九列的数组并输出
        System.out.println("第一种方法输出array1:");

        for (int[] ints : array1)//第一种遍历输出,结果不补零
        {
            for (int anInt : ints)
            {
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }

        System.out.println("==============================================");
        System.out.println("第二种方法输出array1:");

        for (int i = 0; i < array1.length; i++)//第二种方法遍历输出,结果一样不补零
        {
            for (int j = 0; j < array1[i].length; j++)
            {
                System.out.print(array1[i][j]+"\t");

            }
            System.out.println();
        }

        System.out.println("==============================================");
        System.out.println("第三种方法输出array1:");

        for (int i = 0; i < 10; i++)//第三种方法遍历输出,直接给定长度,但是报错,提示数组下标越界异常。
        {
            for (int j = 0; j < 9; j++)
            {
                System.out.print(array1[i][j]+"\t");

            }
            System.out.println();
        }
    }
}
//输出结果如下:求指点为什么输出结果不自动补零呢?
/*

第一种方法输出array1:
        1  0  89
        0  9  0  89 78 0  0  9
        4  6  8  0  0  0  8
        0  2  3  4  5
        0  0  0  5
        0  0  0  0  0  7
        0  0  0  0  0  9
        0  0  0  0  0  0  13
        0  0  0  0  67 0  0  0  0

        ==============================================
        第二种方法输出array1:
        1  0  89
        0  9  0  89 78 0  0  9
        4  6  8  0  0  0  8
        0  2  3  4  5
        0  0  0  5
        0  0  0  0  0  7
        0  0  0  0  0  9
        0  0  0  0  0  0  13
        0  0  0  0  67 0  0  0  0

        ==============================================
        第三种方法输出array1:
        1  0  89 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
        at com.baidu.数组.Demo转换稀疏数组练习.main(Demo转换稀疏数组练习.java:51)*/

你要自己固定循环次数,如果没有的元素就打印一个0出来。

数组本来就只有这几个元素,方法1和方法二当然不会自动补0了。
需要补0就用方法三,加个判断 数组.length 如果数组越界就输出0就达到了你的补0需求。

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632