对角线遍历数组
我有一大个任意大小的数组。它是一个方形数组。我试图掌握如何像a而不是a一样对角线遍历它(我已经知道如何做)。到目前为止,我有以下代码:/
\
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 问题与整数数组存在类似的问题,其解基于数组元素的总和。但是我正在使用字符,所以我想不出一种方法来获得它。