如何使用 Cell 的 toString() 方法为二维单元格数组制作 toString() 方法?
How to make a toString() method for a 2D Array of Cells using the toString() method of Cell?
我的任务是实现 Conway 的生命游戏,但我一直坚持在 toString()
方法中表示我的游戏地图(二维单元阵列)。
我的 toString() 方法:
public String toString() {
int h;
int j;
String str;
str = null;
String[][] stringArray = new String[map.length][map.length];
for (h = 0; h < getWidth(); h++) {
for (j = 0; j < getHeight(); j++) {
Cell i = getCell(h, j);
stringArray[h][j] = i.toString() + " ";
}
}
int k;
int m;
for (k = 0; k < stringArray.length; k++) {
for (m = 0; m < stringArray.length; m++) {
str = stringArray[k][m];
}
}
return str;
}
如您所见,我需要调用特定于单元格的 toString()
方法作为任务的一部分。
此 toString()
方法如下所示:
public String toString() {
if (status == ECellStatus.DEAD) {
return ".";
} else {
return "#";
}
}
在实际代码中,我只得到最后一个单元格的表示,但我想这样打印它:
. . . . .
. . # . .
. . . # .
. # # # .
. . . . .
希望有人能帮帮我。
在第二个 for 循环中,您将 str
重新分配给当前 Cell 的 toString
而不是 appending/adding ,这可能是您打算做的。
要附加到 str
,您可以这样做:
for (k = 0; k < stringArray.length; k++) {
for (m = 0; m < stringArray.length; m++) {
str += stringArray[k][m];
}
}
这还需要您将 str
初始化为非空值,因此不用
str = null;
您将需要执行 str = "";
或类似的操作。
我的任务是实现 Conway 的生命游戏,但我一直坚持在 toString()
方法中表示我的游戏地图(二维单元阵列)。
我的 toString() 方法:
public String toString() {
int h;
int j;
String str;
str = null;
String[][] stringArray = new String[map.length][map.length];
for (h = 0; h < getWidth(); h++) {
for (j = 0; j < getHeight(); j++) {
Cell i = getCell(h, j);
stringArray[h][j] = i.toString() + " ";
}
}
int k;
int m;
for (k = 0; k < stringArray.length; k++) {
for (m = 0; m < stringArray.length; m++) {
str = stringArray[k][m];
}
}
return str;
}
如您所见,我需要调用特定于单元格的 toString()
方法作为任务的一部分。
此 toString()
方法如下所示:
public String toString() {
if (status == ECellStatus.DEAD) {
return ".";
} else {
return "#";
}
}
在实际代码中,我只得到最后一个单元格的表示,但我想这样打印它:
. . . . .
. . # . .
. . . # .
. # # # .
. . . . .
希望有人能帮帮我。
在第二个 for 循环中,您将 str
重新分配给当前 Cell 的 toString
而不是 appending/adding ,这可能是您打算做的。
要附加到 str
,您可以这样做:
for (k = 0; k < stringArray.length; k++) {
for (m = 0; m < stringArray.length; m++) {
str += stringArray[k][m];
}
}
这还需要您将 str
初始化为非空值,因此不用
str = null;
您将需要执行 str = "";
或类似的操作。