| 上述小程序是否可以改成随意长度的二维数组都打印出这个效果,我暂时改不出来,或者说我写的这个只能是等长,随机长度不支持?。有能改的或另写的都可以。万分感谢。复制代码public class PrintMatrix {
        /**
         * 以下将等长二维数组中的数字按自然顺序和螺旋样式打印到控制台                      
         */
        public static void main(String[] args) {
                int n = 4;
                int[][] arr = new int[n][n];
                print2Arr(arr,n);
        }
        //创建打印方法
        public static void print2Arr(int[][] arr,int a){
                //定义水平和垂直方向各2个角标
                int startx = 0,starty = 0,endx = a,endy = a;
                int count= 1;
                //设定循环条件,水平的x<y,垂直打印的x<y
                while(count <= a*a){
                        
                        for(int i=starty;i<endx;i++)        
                                //填入最上层一行
                                arr[starty][i]=count++;
                        starty++;
                        for(int i=starty;i<endy;i++)                        
                                //填入最右边
                                arr[i][endx-1]=count++;
                        endx--;
                        for(int i=endx-1;i>=startx;i--)
                                //填入最下边
                                arr[endy-1][i]=count++;
                        endy--;
                        for(int i=endy-1;i>=starty;i--)
                                //填入最左边
                                arr[i][startx]=count++;
                        startx++;
                }
                
                for(int x=0;x<arr.length;x++){
                        for(int j=0;j<arr[x].length;j++){
                                System.out.print(arr[x][j]+"\t");
                        }
                        System.out.println("\r");
                }
        }        
}
 |