这样的事情怎么样:
for (int row = 0; row < 3; row ++)
for (int col = 0; col < 3; col++)
table[row][col] = (char) ('1' + row * 3 + col);
以下完整的Java程序:
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]);
}
}
输出:
1
2
3
4
5
6
7
8
9
之所以有效,是因为Unicode中的数字是连续的,从\ u0030开始(这是您从中获得的'0'
)。
表达式'1' + row * 3 + col
(您可以在其中变化row
以及col
介于0
和2
包括在内)之间的区别只是给您一个字符从1
到9
。
显然,如果您走得更远的话,这不会给您字符10
(因为是两个字符),但是对于3x3的情况来说,它工作得很好。您将不得不更改此时生成数组内容的方法,例如:
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);