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

2022-09-01 19:42:02

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

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();

如何打印 2D 阵列?


答案 1

Arrays 类定义了几个有用的方法

  • 阵 列。toString - 这不适用于嵌套数组
  • 阵 列。deepToString - 它完全符合你的需求

 

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

  [[hello, world], [Goodbye, planet]]

答案 2

您只需对元素进行两次迭代:

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(']');
}

重要提示:也很有用,因为您可以链接操作,例如:因为它返回对 self 的引用!如果可用,请使用同步糖。StringBufferbuffer.append(..).append(..).append(..)

重要说明2:由于在这种情况下,您计划将许多内容追加到中,因此最好估计容量以避免在追加期间多次分配和重新定位数组,因此您可以计算多维数组的大小乘以计划追加的元素的平均字符长度。StringBuffer