我正在尝试将一个 String[][]
转换为字符串以在 GUI 中显示。这是我的代码:
String[][] tableBornes = SearchPropertiesPlugin.FillBornesTable();
String table = tableBornes.toString();
这是它的输出结果:
[[Ljava.lang.String;@19b8858
我该怎么获得更易读的内容?
我正在尝试将一个 String[][]
转换为字符串以在 GUI 中显示。这是我的代码:
String[][] tableBornes = SearchPropertiesPlugin.FillBornesTable();
String table = tableBornes.toString();
这是它的输出结果:
[[Ljava.lang.String;@19b8858
我该怎么获得更易读的内容?
尝试一行代码版本
Arrays.deepToString(tableBornes);
或者多行版本
StringBuilder sb = new StringBuilder();
for(String[] s1 : tableBornes){
sb.append(Arrays.toString(s2)).append('\n');
}
String s = sb.toString();
如果你想创建数组的单行表示,可以使用Arrays.deepToString
。
如果你想要创建多行表示,你可能需要迭代所有的行并附加Array.toString(array[row])
的结果,例如:
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();
自从Java 8以来,您甚至可以使用StringJoiner
,它会自动为您添加分隔符:StringJoiner sj = new StringJoiner(System.lineSeparator());
for (String[] row : array) {
sj.add(Arrays.toString(row));
}
String result = sj.toString();
或使用流
String result = Arrays
.stream(array)
.map(Arrays::toString)
.collect(Collectors.joining(System.lineSeparator()));
尝试使用 Arrays.toString(Object[] a)
方法。
for(String[] a : tableBornes)
System.out.println(Arrays.toString(a));
tableBornes
中的每个数组。StringBuilder sb = new StringBuilder();
for(String[] s1 : tableBornes){
for(String s2 : s1){
sb.append(s2);
}
}
String table = sb.toString();
append
调用即可。