我有一个“连接四个板”,我用一个2D数组(array[x][y] x=x坐标,y = y坐标)来模拟。我必须使用“System.out.println”,所以我必须遍历这些行。
我需要一个方法来解决这个问题[0,0] [1,0] [2,0] [3,0] [0,1] [1,1] [2,1]等
如果我使用正常程序:
for (int i = 0; i<array.length; i++){
for (int j = 0; j<array[i].length; j++){
string += array[i][j];
} System.out.println(string)
}
它不工作,因为它以这种方式迭代[0,0] [0,1] [0,2] [0,3]等
正常的过程保持在x和递增y,直到列的末尾,但我需要说在y和递增x,直到行的末尾。
7条答案
按热度按时间hgqdbh6s1#
把它看作是一个数组的数组,这肯定会起作用。
mcdcgff02#
只需像这样反转索引的顺序:
因为所有的行都有相同数量的列,所以你可以使用这个条件j < array[0]. numb in first for条件,因为你正在迭代一个矩阵。
db2dz4w83#
envsm3lx4#
只是改变索引。i和j....在循环中,另外,如果你处理字符串,你必须使用concat并将变量初始化为空的Strong,否则你会得到一个异常。
zdwk9cvp5#
这些功能应该起作用。
在第一个块中,内部循环在移动到下一列之前迭代行中的每个项。
在第二个块(您想要的块)中,内部循环在移动到下一行之前迭代所有列。
tl;dr:
Essentially, the
for()
loops in both functions are switched. That's it.
我希望这能帮助你理解迭代二维数组背后的逻辑。
此外,无论您有字符串[,]还是字符串[][],
kt06eoxx6#
简单的想法:获取最长行的长度,如果有元素,则在每列上打印行的内容。下面的代码可能会有一些错误,因为它是在一个简单的文本编辑器中编码的。
kmynzznz7#