J'ai Set<String> result
& voudrais le convertir en chaîne séparée par des virgules. Mon approche serait celle montrée ci-dessous, mais je chercherais aussi une autre opinion.
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;
De la bibliothèque Apache Commons:
import org.Apache.commons.lang3.StringUtils
Utilisation:
StringUtils.join(slist, ',');
Une autre question similaire et réponse ici
Vous pouvez commencer par compter la longueur totale de la chaîne et la transmettre au constructeur StringBuilder. Et vous n'avez pas besoin de convertir le Set en premier.
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
La Separator
que vous utilisez est un composant de l'interface utilisateur. Vous feriez mieux d'utiliser un simple String sep = ", "
.