我的问题是,我如何制作一个多维数组,即视觉上由' *'组成的框架。符号,如下图所示。
在我的任务中,我有两个常数 - 框架的宽度和高度。 如何使数组看起来像这样,而不必为数组中的每个空格域添加一个' *'。
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的帮助:)答案 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