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 rowund colzwischen 0und 2einschließlich) gibt Ihnen einfach einen Charakter von 1bis 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);