如何将字符串添加到二维对象数组?

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 替换为其他帖子中连接的字符串。