如何优化以下代码段?我正在创建要填充到2D数组中的空间对象以充当国际象棋棋盘,并使用它来创建更标准的命名系统。
String name = null;
for(int r = 7; r > -1; r--)
for(int c = 0; c < 8; c++)
{
if(c == 0)
name = "A";
else if(c == 1)
name = "B";
else if(c == 2)
name = "C";
else if(c == 3)
name = "D";
else if(c == 4)
name = "E";
else if(c == 5)
name = "F";
else if(c == 6)
name = "G";
else
name = "H";
答案 0 :(得分:3)
final static char[] letters = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H' };
:
for (int c=0; c<8; c++) {
name = letters[c];
:
此名称为char
-确实需要为字符串吗?如果是这样,请进行明显的更改。如果您担心效率,则将字母定义为String [],而不是将运行时从char转换为String。
答案 1 :(得分:2)
您可以遍历字符并将其更改为这样的字符串:
for (int r=7; r >= 0; r--) {
for (char c='A'; c <= 'H'; c++) {
name = c + "";
答案 2 :(得分:1)
您从未完成过for
循环,但这是一种优化到目前为止为止向我们展示的内容的方法:
String name = null;
String letters = "ABCDEFGH";
for (int r=7; r >= 0; r--) {
for (int c=0; c < 8; c++) {
name = letters.charAt(c) + "";
// the rest of your logic
}
}
答案 3 :(得分:0)
“ A”的ASCII码为65,“ H”的ASCII码为72。然后,您可以执行以下操作
for (int r = 7; r > -1; r--) {
for(int c = 65; c < 73; c++) {
name = Character.toString((char) c);
//or
name = "" + (char) c;
}
}