私はSet<String> result
&をカンマ区切りの文字列に変換したいのですが。私のアプローチは以下のようになりますが、他の意見も求めています。
List<String> slist = new ArrayList<String> (result);
StringBuilder rString = new StringBuilder();
Separator sep = new Separator(", ");
//String sep = ", ";
for (String each : slist) {
rString.append(sep).append(each);
}
return rString;
Apache Commonsライブラリから:
import org.Apache.commons.lang3.StringUtils
つかいます:
StringUtils.join(slist, ',');
別のよくある質問と回答 はこちら
最初に文字列の全長を数え、それをStringBuilderコンストラクタに渡すことができます。そして最初にSetを変換する必要はありません。
Set<String> abc = new HashSet<String>();
abc.add("A");
abc.add("B");
abc.add("C");
String separator = ", ";
int total = abc.size() * separator.length();
for (String s : abc) {
total += s.length();
}
StringBuilder sb = new StringBuilder(total);
for (String s : abc) {
sb.append(separator).append(s);
}
String result = sb.substring(separator.length()); // remove leading separator
使用しているSeparator
はUIコンポーネントです。単純なString sep = ", "
を使うほうがいいでしょう。