我試圖將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
。
如果你想創建多行表示你可能會需要遍歷所有行和追加的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()));
for(String[] a : tableBornes)
System.out.println(Arrays.toString(a));
上面的代碼將打印的每個陣列中換行二維陣列tableBornes
。
@LuiggiMendoza:更新了答案:) – Parth 2013-03-25 15:44:06
嘗試一個行版本
Arrays.deepToString(tableBornes);
或者多版本
StringBuilder sb = new StringBuilder();
for(String[] s1 : tableBornes){
sb.append(Arrays.toString(s2)).append('\n');
}
String s = sb.toString();
thnks,我試過這個,但是我還想排隊,在一行中打印每個列表?這個怎麼做? – 2013-03-25 16:06:53
如何:
StringBuilder sb = new StringBuilder();
for(String[] s1 : tableBornes){
for(String s2 : s1){
sb.append(s2);
}
}
String table = sb.toString();
如果要插入空格或項目之間的一些其他的角色只是在內部循環中添加另一個append
調用。
是的,我想添加空間,並返回到該行,以獲得表格的模型。如果有辦法直接打印表格,我有模型嗎? – 2013-03-25 16:08:56
您正在獲取數組的參考。您應該遍歷所有元素並將它們連接起來以獲得所需的輸出。 – 2013-03-25 15:37:42