将二维数组转换为字符串

Asm*_*a.O 17 java

我正在尝试将a转换String[][]为字符串以在GUI中显示.这是我的代码:

String[][] tableBornes = SearchPropertiesPlugin.FillBornesTable();
String table = tableBornes.toString();
Run Code Online (Sandbox Code Playgroud)

这是它产生的东西:

[[Ljava.lang.String;@19b8858

我怎样才能获得更具可读性的东西?

Evg*_*eev 19

尝试一行版本

Arrays.deepToString(tableBornes);
Run Code Online (Sandbox Code Playgroud)

或多行版本

StringBuilder sb = new StringBuilder();
for(String[] s1 : tableBornes){
    sb.append(Arrays.toString(s2)).append('\n');
}
String s = sb.toString();
Run Code Online (Sandbox Code Playgroud)


Psh*_*emo 14

如果要创建可以使用的数组的单行表示Arrays.deepToString.


如果你想创建多行表示,你可能需要迭代所有行并追加Array.toString(array[row])like的结果

String[][] array = { { "a", "b" }, { "c" } };

String lineSeparator = System.lineSeparator();
StringBuilder sb = new StringBuilder();

for (String[] row : array) {
    sb.append(Arrays.toString(row))
      .append(lineSeparator);
}

String result = sb.toString();
Run Code Online (Sandbox Code Playgroud)

从Java 8开始,您甚至可以使用StringJoiner自动为您添加分隔符:

StringJoiner sj = new StringJoiner(System.lineSeparator());
for (String[] row : array) {
    sj.add(Arrays.toString(row));
}
String result = sj.toString();
Run Code Online (Sandbox Code Playgroud)

或使用流

String result = Arrays
        .stream(array)
        .map(Arrays::toString) 
        .collect(Collectors.joining(System.lineSeparator()));
Run Code Online (Sandbox Code Playgroud)


Par*_*rth 6

尝试 Arrays.toString(Object[] a)

for(String[] a : tableBornes) 
      System.out.println(Arrays.toString(a));
Run Code Online (Sandbox Code Playgroud)

上面的代码将以tableBornes换行符的形式打印二维数组中的每个数组.