我是java的初学者,所以请对我宽容一点。我正在研究一个处理二维数组的实践方法问题。问题是一个方法,它告诉您将名为array的二维字符数组作为参数。然后,它希望您将数组的所有元素初始化为' x ',除了初始化为' o '的周长(第一列和最后一列,以及第一行和最后一行)。
我的问题是如何初始化每个元素来表示二维数组中的x和y,以及如何初始化周长的每个行和列元素?例如,创建3行4列的二维数组-
char[][] table = new char[3][4]
-将填满表的外部周长只有0和其余内部将填满x,对吗?
本质上是这样的输出看起来像吗?
{ o, o, o, o},
{ o, x, x, o},
{ o, o, o, o},
另外,如果我没有接近理解问题的地方,有人可以引导我在正确的方向吗?
谢谢
这最好作为两个独立的问题来处理:
- 初始化第一行和最后一行为'o'
- 初始化剩余行
第一个问题很容易解决:遍历第一行和最后一行,并将每个元素设置为"0"。第二个问题被分解为
2 a。初始化第一列和最后一列为'o'
2 b。将其余列初始化为'x'
假设一行的长度为length
,用
array[0] = 'o';
array[length - 1] - 'o';
for(int i = 1; i < length - 1; i++)
array[i] = 'x'
new
int数组将被初始化为全0。
int[][] array = new int[3][4];
看起来像
{0,0,0,0}
{0,0,0,0}
{0,0,0,0}
你得自己设定周长
你需要的是嵌套一些循环,并确定你在数组中的位置,并相应地设置:(伪代码)
for i loop through array.length
for j loop through array[i].length
if i == first element or i == last element or j == first element or j == last element
then array[i][j] = perimeter value
else
array[i][j] = center value
一个长度为n的数组有n个元素,从0到n-1,所以如果你有一个这样的数组
{1,2,3,4}
array[0]将为1,这是因为Java数组是从0开始的。
第一个总是0,最后一个是length-1