-3
public String toString()
{
    String s = "";
    s += String.format("%02d" ,board[][] + " ");
    s += "/n" +"/n" + "The knight made" + (moves) + "moves";
    return s;
}

我不知道为什么,但我一直收到错误消息.class 'expected'。这是什么意思,我该如何解决?

4

1 回答 1

7

您的代码存在三个错误和效率低下。

第一个错误是您试图在单个语句中打印 2D 数组。你不能这样做 - 你需要两个嵌套循环:

for (int r = 0; r != maxRow ; r++) {
    for (int c = 0; c != maxCol ; c++) {
         // Do the construction of the string here.
         // Refer to board[r][c] instead of board[][]
    }
}

第二个错误是"/n"不是换行符:你需要一个反斜杠。

第三个错误是您尝试使用%d格式打印字符串:您应该board[r][c]不使用+ " ", 并将空格放在格式字符串内:

String.format("%02d " ,board[r][c])

效率低下是您正在使用循环中调用的连接构造结果字符串。这会创建许多临时对象。你应该StringBuilder上课。

于 2013-09-03T21:13:43.030 回答