如何将字符串添加到二维对象数组?
How to add strings to a 2d array of objects?
所以我有一个 class Cell
的二维对象数组。这是一个 connect 4 游戏。现在这个数组的大小由板启动时的参数决定。它看起来像这样:
public ConnectSome(int size){
board = new Cell[(size*2)-1][(size+2)];
for(int i = 0 ; i<board.length; i++)
for(int j = 0; j<board[i].length; i++)
board[i][j] = new Cell();
我需要创建一个 toString()
方法,将棋盘转换为字符串并 return 发送它。我已经有 Cell
class 的 toString()
方法,其中 return 是该单元格的状态(在本例中为黄色、红色或空)。
如何使此方法 return 成为一个字符串,不仅以字符串形式显示每个单元格,而且还用一个框架包围它?我试过了,但我迷路了。它应该看起来像这样:
|.......|
|.......|
|.......|
|.......|
|.......|
|.......|
+-------+
其中句点 (.) 是 Cell
个对象,它们是 "empty"(在 Cell
上使用 toString()
的结果)。这只是一个示例板,尺寸可能会有所不同,但边框是我想要达到的效果。
所以您需要 1 个包含所有数据的字符串,还是需要一个包含每个单元格内容的字符串?
String s = null;
for (int i = 0; i < board.length; i++){
for(int j = 0; j < board.length; j++){
String temp = board[i][j];
s = s + temp;
}
}
应该可行
如果我做对了问题,那么这就是答案。
public String boardToString()
{
String str="";
for(int i = 0 ; i<board.length; i++)
{
str+="|";
for(int j = 0; j<board[i].length; i++)
{
Cell cell=board[i][j];
str+=cell.toString();//assuming you have a toString method.
}
str+="|\n";
}
return str;
}
伙计,你想做的事情真的很简单,你可以很容易地自己弄明白——你不需要任何额外的知识和特殊的代码,而不是你已经展示的东西。
无论如何,你去(注意,它不是工作代码 - 只是一个例子):
//take your board and iterate over it
for(int i = 0 ; i<board.length; i++) {
system.out.print("|"); //print left border of your game field
for(int j = 0; j<board[i].length; i++) {
system.out.print(board[i][j].toString()); // print cell state
}
system.out.println("|"); //print right border
}
编辑:我的错 -> 如果您想将所有这些数据放入一个字符串而不是打印,请将 system.out.print 替换为其他帖子中连接的字符串。
所以我有一个 class Cell
的二维对象数组。这是一个 connect 4 游戏。现在这个数组的大小由板启动时的参数决定。它看起来像这样:
public ConnectSome(int size){
board = new Cell[(size*2)-1][(size+2)];
for(int i = 0 ; i<board.length; i++)
for(int j = 0; j<board[i].length; i++)
board[i][j] = new Cell();
我需要创建一个 toString()
方法,将棋盘转换为字符串并 return 发送它。我已经有 Cell
class 的 toString()
方法,其中 return 是该单元格的状态(在本例中为黄色、红色或空)。
如何使此方法 return 成为一个字符串,不仅以字符串形式显示每个单元格,而且还用一个框架包围它?我试过了,但我迷路了。它应该看起来像这样:
|.......|
|.......|
|.......|
|.......|
|.......|
|.......|
+-------+
其中句点 (.) 是 Cell
个对象,它们是 "empty"(在 Cell
上使用 toString()
的结果)。这只是一个示例板,尺寸可能会有所不同,但边框是我想要达到的效果。
所以您需要 1 个包含所有数据的字符串,还是需要一个包含每个单元格内容的字符串?
String s = null;
for (int i = 0; i < board.length; i++){
for(int j = 0; j < board.length; j++){
String temp = board[i][j];
s = s + temp;
}
}
应该可行
如果我做对了问题,那么这就是答案。
public String boardToString()
{
String str="";
for(int i = 0 ; i<board.length; i++)
{
str+="|";
for(int j = 0; j<board[i].length; i++)
{
Cell cell=board[i][j];
str+=cell.toString();//assuming you have a toString method.
}
str+="|\n";
}
return str;
}
伙计,你想做的事情真的很简单,你可以很容易地自己弄明白——你不需要任何额外的知识和特殊的代码,而不是你已经展示的东西。 无论如何,你去(注意,它不是工作代码 - 只是一个例子):
//take your board and iterate over it
for(int i = 0 ; i<board.length; i++) {
system.out.print("|"); //print left border of your game field
for(int j = 0; j<board[i].length; i++) {
system.out.print(board[i][j].toString()); // print cell state
}
system.out.println("|"); //print right border
}
编辑:我的错 -> 如果您想将所有这些数据放入一个字符串而不是打印,请将 system.out.print 替换为其他帖子中连接的字符串。