我有一个“连接四块板”,我用一个二维数组(数组[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直到行的结尾。
6条答案
按热度按时间imzjd6km1#
简单的想法:获取最长行的长度,遍历每一列,如果行中有元素,则打印行的内容。由于下面的代码是在一个简单的文本编辑器中编写的,因此可能会出现一些逐个错误。
fsi0uk1n2#
92vpleto3#
只需更改索引。在循环中,如果你处理字符串,你必须使用concat并将变量初始化为一个空的强函数,否则你会得到一个异常。
t8e9dugd4#
只需将索引的顺序颠倒如下:
因为所有行的列数都相同,所以您可以使用此条件j<array[0].lengt in first作为条件,因为您在对矩阵进行迭代
6ss1mwsb5#
这些功能应该起作用。
在第一个块中,内部循环在移动到下一列之前对行中的每个项进行迭代。
在第二个块(您想要的块)中,内部循环在移动到下一行之前遍历所有列。
tl;dr:
基本上for()
两个函数中的循环都是切换的。就这样。我希望这能帮助您理解迭代二维数组背后的逻辑。
此外,无论您有字符串[,]还是字符串[][],这都有效
tv6aics16#
把它看作是一个数组,这肯定会起作用。