如何使用名为cage的静态方法创建一个java类,将X放在监狱栏中?

Dan*_*oth 6 java shape

这是我的作业:如何创建一个名为cage(char [] [] arr)的公共方法,它返回一个char [] [].该方法应沿着2D阵列表示的网格边界放置X. 此外,它应该沿着数组的列放置"条形",为每个条形跳过一列.例如,如果arr有8列,则返回的数组如下所示:

 X X X X X X X
 X   X   X   X
 X   X   X   X
 X X X X X X X
Run Code Online (Sandbox Code Playgroud)

我的另一个形状是:使用下面指定的静态方法创建一个java类ArrayArt:一个名为frame(char [] [] arr)的公共方法,它返回一个char [] [].该方法应该沿着由2D数组表示的网格的边界放置X,然后它应该返回该数组.例如,如果arr有4列和4行,则生成的数组应为:

 ----jGRASP exec: java ArrayArt

  X X X X
  X     X
  X     X
  X X X X

 ----jGRASP: operation complete.
Run Code Online (Sandbox Code Playgroud)

框架打印的源代码如下:

 public class  ArrayArt{
    public static void main(String[] args){ 
        printArray(frame(4,4));

}

// frame printing
public static char[][] frame(int n, int m ){
    char[][] x=new char[n][m];

    for(int row=0;row<x.length;row++)
        for(int col=0;col<x[row].length;col++)
            if( row == 0 || row == n-1 || row == col+row || row == (row+col)-(m-1) )
                x[row][col]= 'X';
            else
                x[row][col]= ' ';

    return x;       
}

//printArray        
public static void printArray(char[][] arr){
    for(int row=0;row<arr.length;row++){
            for (int col=0;col<arr[row].length;col++)
                System.out.print(" "+arr[row][col]);
            System.out.println();

}
}

}
Run Code Online (Sandbox Code Playgroud)

小智 4

只需在 else 条件之后添加此代码即可:

for(int i=1;i<x[row].length;i++)if(col == i*2)x[row][col]= 'X';
Run Code Online (Sandbox Code Playgroud)

那个shood做到了!祝你好运!