我有一個任意大小的大數組。這是一個方形陣列。我試圖掌握如何像對角線那樣遍歷它,就像/
而不是\
(我已經知道該怎麼做)。我有以下代碼迄今:對角遍歷一個數組
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異常。說陣列是如下(3×3,而不是500×500):
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
我不確定我關注。 A = 0,0,B + D = 1,1,C + E + G = 3,3,然後是3,3,然後是2,2 ...... – gator
通過'i和j'我提到座標。 C,E和G的值爲2. F和H的值爲3.我的值爲4. – Obicere