22

String[][]GUIで表示するためにを文字列に変換しようとしています。これが私のコードです:

String[][] tableBornes = SearchPropertiesPlugin.FillBornesTable();
String table = tableBornes.toString();

生成されるものは次のとおりです。

[[Ljava.lang.String;@19b8858

どうすればもっと読みやすくなりますか?

4

4 に答える 4

26

1行バージョンを試してください

Arrays.deepToString(tableBornes);

または複数行バージョン

StringBuilder sb = new StringBuilder();
for(String[] s1 : tableBornes){
    sb.append(Arrays.toString(s2)).append('\n');
}
String s = sb.toString();
于 2013-03-25T15:41:33.830 に答える
19

配列の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()));
于 2013-03-25T15:49:02.063 に答える
6

試すArrays.toString(Object[] a)

for(String[] a : tableBornes) 
      System.out.println(Arrays.toString(a));

上記のコードは、すべての配列tableBornesを改行で2次元配列に出力します。

于 2013-03-25T15:37:56.100 に答える
3

これはどう:

StringBuilder sb = new StringBuilder();
for(String[] s1 : tableBornes){
    for(String s2 : s1){
        sb.append(s2);
    }
}
String table = sb.toString();

アイテムの間にスペースやその他の文字を挿入する場合はappend、内側のループ内に別の呼び出しを追加するだけです。

于 2013-03-25T15:43:09.630 に答える