如何将二维字符串数组打印为String

owc*_*wca 17 java string multidimensional-array

我知道如何toString为一维字符串数组做方法,但是如何打印二维数组呢?用1D我这样做:

public String toString() {
    StringBuffer result = new StringBuffer();
    res = this.magnitude;

    String separator = "";
    if (res.length > 0) {
        result.append(res[0]);
        for (int i=1; i<res.length; i++) {
            result.append(separator);
            result.append(res[i]);
        }
    }
return result.toString();
Run Code Online (Sandbox Code Playgroud)

如何打印2D数组?

Rob*_*tie 61

数组类定义了几个有用的方法

 

String[][] aastr = {{"hello", "world"},{"Goodbye", "planet"}};
System.out.println(Arrays.deepToString(aastr));
Run Code Online (Sandbox Code Playgroud)

  [[hello, world], [Goodbye, planet]]
Run Code Online (Sandbox Code Playgroud)


Jac*_*ack 6

你只需要在元素上迭代两次:

StringBuffer results = new StringBuffer();
String separator = ","
float[][] values = new float[50][50];

// init values

for (int i = 0; i < values.length; ++i)
{
  result.append('[');
  for (int j = 0; j < values[i].length; ++j)
    if (j > 0)
      result.append(values[i][j]);
    else
      result.append(values[i][j]).append(separator);
  result.append(']');
}
Run Code Online (Sandbox Code Playgroud)

重要提示: StringBuffer也很有用,因为您可以链接操作,例如:buffer.append(..).append(..).append(..)因为它返回对self的引用!可用时使用synctactic糖..

重要事项2:因为在这种情况下你计划附加许多东西,StringBuffer以便估计在附加过程中避免多次分配和重新定位数组的容量,你可以计算多维数组的大小乘以平均字符长度您计划追加的元素

  • 您可以使用未同步的StringBuilder,在某些情况下可能会更快 (3认同)