Wie wäre es mit so etwas:
for (int row = 0; row < 3; row ++)
for (int col = 0; col < 3; col++)
table[row][col] = (char) ('1' + row * 3 + col);
Das folgende vollständige Java-Programm:
class Test {
public static void main(String[] args) {
char[][] table = new char[3][3];
for (int row = 0; row < 3; row ++)
for (int col = 0; col < 3; col++)
table[row][col] = (char) ('1' + row * 3 + col);
for (int row = 0; row < 3; row ++)
for (int col = 0; col < 3; col++)
System.out.println (table[row][col]);
}
}
Ausgänge:
1
2
3
4
5
6
7
8
9
Dies funktioniert, weil die Ziffern in Unicode ab \ u0030 (von denen Sie erhalten '0'
) aufeinanderfolgend sind .
Der Ausdruck '1' + row * 3 + col
(wo Sie variieren row
und col
zwischen 0
und 2
einschließlich) gibt Ihnen einfach einen Charakter von 1
bis 9
.
Dies gibt Ihnen natürlich nicht den Charakter 10
(da dies zwei Zeichen sind), wenn Sie weiter gehen, aber es funktioniert gut für den 3x3-Fall. Sie müssten die Methode zum Generieren des Array-Inhalts an diesem Punkt ändern, z. B.:
String[][] table = new String[5][5];
for (int row = 0; row < 5; row ++)
for (int col = 0; col < 5; col++)
table[row][col] = String.format("%d", row * 5 + col + 1);