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
どうすればもっと読みやすくなりますか?
1行バージョンを試してください
Arrays.deepToString(tableBornes);
または複数行バージョン
StringBuilder sb = new StringBuilder();
for(String[] s1 : tableBornes){
sb.append(Arrays.toString(s2)).append('\n');
}
String s = sb.toString();
配列の1行表現を作成する場合は、を使用できます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
を改行で2次元配列に出力します。
これはどう:
StringBuilder sb = new StringBuilder();
for(String[] s1 : tableBornes){
for(String s2 : s1){
sb.append(s2);
}
}
String table = sb.toString();
アイテムの間にスペースやその他の文字を挿入する場合はappend
、内側のループ内に別の呼び出しを追加するだけです。