java中的多维数组,打印出一个帧

时间:2013-11-29 08:55:59

标签: arrays printing multidimensional-array constants frame

我的问题是,我如何制作一个多维数组,即视觉上由' *'组成的框架。符号,如下图所示。

在我的任务中,我有两个常数 - 框架的宽度和高度。 如何使数组看起来像这样,而不必为数组中的每个空格域添加一个' *'。

http://imageshack.us/a/img24/5600/ib0x.jpg

这就是我已经做过的事情:

public class UpravljalnikOken{
public static final int FRAME_WIDTH = 15;
public static final int FRAME_HEIGHT = 15;
//public static final int NAJVECJE_ST_OKEN = 5;

public static void main (String[]args){
    char [] [] okvir = new char [FRAME_HEIGHT] [FRAME_WIDTH];

    okvir [0][0] = '*';
    okvir [0][1] = '*';
    okvir [0][2] = '*';
    okvir [0][3] = '*';
    okvir [0][4] = '*';
    okvir [0][5] = '*';
    okvir [1][0] = '*';
    okvir [2][0] = '*';
    okvir [3][0] = '*';
    okvir [4][0] = '*';
    okvir [5][0] = '*';
    okvir [6][0] = '*';
    // ...….. is this the only way? 

display(okvir);
}
public static void display(char x[][]){
    for(int row=0;row<x.length;row++){
        for(int column=0;column<x[row].length;column++){
            System.out.print(x[row][column]);
        }
        System.out.println();
    }

}

}

我正朝着正确的方向前进吗?或者有更简单的方法吗? Thanx的帮助:)

1 个答案:

答案 0 :(得分:1)

您需要使用2 for循环遍历数组,然后使用简单的if语句来限制要在框中间打印的'*'(r = row,c = column)。你的类的名称似乎有点但是太随机,诸如ArrayPractice或StarBox之类的名称甚至更具描述性。

   for (int r = 0; r < okvir.length; r++) {
        for (int c = 0; c < okvir[c].length; c++) {
            // Only the first and the last line should be all '*'
            if (r > 1 && r < FRAME_HEIGHT - 2) {
                okvir[r][0] = '*';
                okvir[r][FRAME_WIDTH - 1] = '*';
            }
            else {
                okvir[r][c] = '*';  
            }
        } // end for
    } // end for