1. ホーム
  2. java

[解決済み] Set<String> の内容を空白で区切られた一つの文字列にする最速の方法は?

2023-06-07 13:17:59

質問

私はいくつかの Set<String> があり、それぞれを一つの String に変換し、元の Set の各要素は、空白の " " で区切られています。 素朴な最初のアプローチは、次のようなものです。

Set<String> set_1;
Set<String> set_2;

StringBuilder builder = new StringBuilder();
for (String str : set_1) {
  builder.append(str).append(" ");
}

this.string_1 = builder.toString();

builder = new StringBuilder();
for (String str : set_2) {
  builder.append(str).append(" ");
}

this.string_2 = builder.toString();

誰か、より速く、より美しく、より効率的な方法を思いつきますか?

どのように解決するのですか?

commons/langを使用すると、以下のようになります。 StringUtils.join :

String str_1 = StringUtils.join(set_1, " ");

簡潔さには勝てませんね。

更新しました。

この回答を読み直すと、私はむしろ グアバのジョイナーに関するもう一つの答えである を選ぶでしょう。実際、最近、私はapache commonsに近づきません。

もうひとつの更新です。

Java 8 では String.join()

String joined = String.join(",", set);

これはGuava版ほど柔軟ではありませんが、クラスパスにGuavaライブラリがない場合に便利です。