167

私は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;
4

3 に答える 3

10

最初に文字列の全長をカウントし、それを 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
于 2013-04-04T15:49:23.723 に答える