2010-10-26 13 views

Respuesta

76

Usted puede utilizar el método StringUtils.join() de Apache Commons Lang:

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

Por supuesto, la creación de una clase de utilidad también es realmente fácil, si no desea usar una biblioteca de terceros para eso. Pero 'Apache Commons Lang' proporciona muchos métodos útiles, que se encargan de los valores' nulos' ... – romaintaz

18

O Joiner de Google guayaba.

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

Tristemente 'String.join()' acepta solo 'Iterable ' (aparte de varargs) a diferencia de 'Joiner.join de Guava() 'que acepta' Iterable ',' Iterator ', varargs, ... –

+3

Correcto - String.join() no maneja tipos arbitrarios. Espera una CharSequence iterable, es decir, List . Si desea delimitar tipos arbitrarios, necesita extraer el valor de cadena y crear la lista delimitada. Este es también un trazador de líneas en Java 8: 'String joined = iterableOfNonCharSequence.stream(). Map (object -> object.methodToGetStringValue()). Collect (Collectors.joining (", "));' – gahrae

+0

StringJoiner es también una clase útil para unir contenido. Aquí hay un programa de ejemplo que muestra StringJoiner y Collectors.joining ... http://pastebin.com/i2YwJcZy# – gahrae

2

Si sólo desea registrar la lista de elementos, se puede utilizar el método de la lista toString() que ya se concatena todos los elementos de la lista.

2

Si está utilizando Spring puede usar el método StringUtils.join() que también le permite especificar el prefijo y el sufijo.

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

Esto realmente se puede copiar y es un único método: https: //gist.github .com/Zhuinden/5d88caee5e184e2b6d5ced329618f086 – EpicPandaForce

3

Puede usar: org.springframework.util.StringUtils;

String stringDelimitedByComma = StringUtils.collectionToCommaDelimitedString(myList); 
Cuestiones relacionadas