У меня есть большой массив произвольного размера. Это квадратный массив. Я пытаюсь понять, как пройти по диагонали, как /
, а не \
(что я уже знаю, как это сделать). У меня есть следующий код до сих пор:Перемещение массива по диагонали
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 вместо 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
Я не уверен, что следую. A = 0,0, B + D = 1,1, C + E + G = 3,3, затем 3,3, затем 2,2 ... – gator
by 'i и j' Я ссылался на координаты. C, E и G будут иметь значение 2. F и H будут иметь значение 3. Значение I равно 4. – Obicere