Ответ 1
Из библиотеки Apache Commons:
import org.apache.commons.lang3.StringUtils
Использование:
StringUtils.join(slist, ',');
Другой подобный вопрос и ответ здесь
У меня есть 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
, который вы используете, является компонентом пользовательского интерфейса. Вам лучше использовать простой String sep = ", "
.