177 votes

Meilleur moyen de convertir une liste en chaîne séparée par des virgules en java

J'ai Set<String> result Je voudrais le convertir en chaîne de caractères séparée par des virgules. Mon approche serait la suivante, mais je suis à la recherche d'autres avis.

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;

474voto

BobTheBuilder Points 17640

Depuis Java 8 :

String.join(",", slist);

De la bibliothèque Apache Commons :

import org.apache.commons.lang3.StringUtils

Utilisez :

StringUtils.join(slist, ',');

Une autre question et réponse similaire aquí

10voto

Kay Points 8052

Vous pourriez d'abord compter la longueur totale de la chaîne, et la passer 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

4voto

Dan Points 27909

El Separator que vous utilisez est un composant de l'interface utilisateur. Vous feriez mieux d'utiliser un simple String sep = ", " .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X