从toString()方法返回一个2d数组

时间:2014-01-09 03:15:11

标签: java arrays multidimensional-array

我无法返回字符串2d数组,因此它将以表格形式显示。这就是我得到的:

如果我写这段代码,它会在一行上显示数组。

   public String toString() {
      return Arrays.deepToString(hidingPlaces);
   }

如果我写这个,我就没有输出。

public String toString() {
  String aString = "";
  for(int row = 0; row < arrayName.length; row++) {
     for(int col = 0; col < arrayName[row].length; col++) {
        aString = " " + arrayName[row][col];
     }
  }
  return aString;
}

最后一个,当我将数组(每个框)初始化为''(空格)时,我得到0000作为输出而不是[]。哦,这是一个char数组btw。请看看我的问题。提前谢谢。

3 个答案:

答案 0 :(得分:4)

我认为你的意思是

aString += " " + arrayName[row][col];

实际上,你在每次迭代中都会覆盖字符串。

答案 1 :(得分:2)

for(int row = 0; row < arrayName.length; row++) {
     for(int col = 0; col < arrayName[row].length; col++) {
        aString += " " + arrayName[row][col];
     }
        aString += "\r\n";
  }

如果您在网络表单上显示,则可以使用<br>代替\r\n

答案 2 :(得分:0)

使用stringbuffer或stringbuilder在tostring方法中连接字符串对象 您的aString会在没有连接的情况下一次又一次地初始化 在这里使用stringbuffer.append,其中aString应该是String缓冲区中的str

EDIT1

public String toString() {
  StringBuffer aString = new StringBuffer();
  for(int row = 0; row < arrayName.length; row++) {
     for(int col = 0; col < arrayName[row].length; col++) {
        aString.append(" " + arrayName[row][col]);
     }
  }
  return aString.toString();
}