我有一个任意大小的大数组,它是一个方形数组。我想知道如何像“/”一样沿着对角线遍历它,而不是像“\”那样(我已经知道如何做了)。我到目前为止有以下代码:
char[][] array = new char[500][500];
//array full of random letters
String arrayLine = "";
for (int y = 0; y < array.length; y++) {
for (int x = 0; x < array.length; x++) {
for (???) {
arrayLine = arrayLine + array[???][???];
}
}
System.out.println(arrayLine);
}
我有三个循环,因为这是我用来实现另一个对角线的方法:
for (int y = 0; y < array.length; y++) {
for (int x = 0; x < array.length; x++) {
for (int z = 0; z < array.length-y-x; z++) {
arrayLine = arrayLine + array[y+z][x+z];
}
}
System.out.println(arrayLine);
}
在我的尝试中,我一直超出了边界,并收到了一个ElementOutOfBounds异常。 假设数组如下所示(3x3而不是500x500):
A B C
D E F
G H I
我想将以下内容作为字符串打印出来:
A
BD
CEG
FH
I
之前的一个SO问题涉及整数数组的类似问题,并且解决方案基于数组元素的总和。但是我正在使用字符,所以我想不出一种方法来解决。
i
和j
相加时会发生什么。您会注意到B((0,1)
)和D((1,0)
)的总和都为1。在解决问题时,请考虑这个应用程序。注意:检查边界也很重要。 - Obicere