2010-10-26 12 views

Répondre

76

Vous pouvez utiliser la méthode StringUtils.join() d'Apache Commons Lang:

String join = StringUtils.join(joinList, "+"); 
+0

Bien entendu, créer une classe d'utilitaires est également très simple, si vous ne voulez pas utiliser une bibliothèque tierce pour cela. Mais 'Apache Commons Lang' fournit beaucoup de méthodes utiles, qui prennent en charge les valeurs' null' ... – romaintaz

18

Ou Joiner de Google goyave.

Joiner joiner = Joiner.on("+"); 
String join = joiner.join(joinList); 
89
+1

Malheureusement 'String.join()' n'accepte que 'Iterable ' (à l'exception de varargs) contrairement à '' Joiner.join '' de Guava.() 'qui accepte' Iterable ',' Iterator ', varargs, ... –

+3

Correct - String.join() ne gère pas les types arbitraires. Il attend une CharSequence itérable, c'est-à-dire Liste . Si vous souhaitez délimiter des types arbitraires, vous devez extraire la valeur String et générer la liste délimitée. Il s'agit également d'une ligne dans Java 8: 'Chaîne jointe = iterableOfNonCharSequence.stream(). Map (object -> objet.methodToGetStringValue()). Collect (Collectors.joining (", "));' ' – gahrae

+0

StringJoiner is also une classe utile pour joindre du contenu. Voici un exemple de programme montrant StringJoiner et Collectors.joining ... http://pastebin.com/i2YwJcZy# – gahrae

2

Si vous voulez juste enregistrer la liste des éléments, vous pouvez utiliser la méthode liste toString() qui concatène déjà tout les éléments de la liste.

2

Si vous utilisez Spring, vous pouvez utiliser la méthode StringUtils.join() qui vous permet également de spécifier le préfixe et le suffixe.

String s = StringUtils.collectionToDelimitedString(fieldRoles.keySet(), 
       "\n", "<value>", "</value>"); 
+0

Cela peut être copié et c'est une méthode unique: https: //gist.github .com/Zhuinden/5d88caee5e184e2b6d5ced329618f086 – EpicPandaForce

3

Vous pouvez utiliser: org.springframework.util.StringUtils;

String stringDelimitedByComma = StringUtils.collectionToCommaDelimitedString(myList); 
Questions connexes