gpt4 book ai didi

java - 在二维数组的边界周围制作一个星形的正方形

转载 作者:行者123 更新时间:2023-12-01 10:45:30 25 4
gpt4 key购买 nike

我试图仅用星号填充二维数组的外部边框,我已经完成了一半,但似乎无法让它填充二维数组中的最后一列和最后一行。

so far I can do this

这是我的代码:

for (int i = 0; i < array.length; i++) 
{
for (int j = 0; j < array.length; j++)
{
if (array[i][j] == array[0][j] || array[i][j] == array[i][0])
{
array[i][j] = "*";
}
}
}

但显然我想完成二维数组周围的正方形,所以我尝试了这样的方法。

for (int i = 0; i < array.length; i++) 
{
for (int j = 0; j < array.length; j++)
{
if (array[i][j] == array[array.length - 1][j]
|| array[i][j] == array[i][array.length - 1])
{
array[i][j] = "*";
}
}
}

我的想法只是转到二维数组中的最后一个有效位置并简单地打印列和行,但它似乎不起作用。感谢我能得到的所有帮助,作为一名 Java 学习者,我真的很感激。

最佳答案

@Ricki,你的思路是对的,但你没有考虑到 array[i][j] == array[array.length - 1][j] 不不是比较“shell”,而是比较它的内部值,因此,即使 array[1][1] != array[2][1],如果它们的值是 null 它们是相等的。

尝试使用此代码:

int _i = 10;
int _j = 10;
String[][] array = new String[_i][_j];
for (int i = 0; i < _i; i++) {
for (int j = 0; j < _j; j++) {
if(i==0 || j == 0 || i == _i-1|| j == _j-1){
array[i][j] = "*";
}
}
}

我所做的是比较第一行(i==0)、第一列(j==0)、最后一行(i == _i-1)和最后一列(j == _j-1)。

然后:

**********
* *
* *
* *
* *
* *
* *
* *
* *
**********

关于java - 在二维数组的边界周围制作一个星形的正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34209044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com