Nunca he encontrado una forma clara (n) de hacer lo siguiente.¿Cuál es la manera más elegante de concatenar una lista de valores con delimitador en Java?
Di que tengo una lista/matriz de cadenas.
abc
def
ghi
jkl
Y quiero para concatenar en una sola cadena delimitada por una coma de la siguiente manera:
abc,def,ghi,jkl
En Java, si escribo algo como esto (perdón por la sintaxis),
String[] list = new String[] {"abc","def","ghi","jkl"};
String str = null;
for (String s : list)
{
str = str + s + "," ;
}
System.out.println(str);
voy a
abc,def,ghi,jkl, //Notice the comma in the end
, así que tengo que volver a escribir lo anterior para el lazo de la siguiente manera
...
for (int i = 0; i < list.length; i++)
{
str = str + list[i];
if (i != list.length - 1)
{
str = str + ",";
}
}
...
se puede hacer esto de una manera más elegante en Java?
Definitivamente usaría un StringBuilder/Buffer para mayor eficiencia, pero quería ilustrar el caso sin ser demasiado detallado. Por elegante, me refiero a una solución que evita la fea (?) if
verificación dentro del bucle.
Ver http://stackoverflow.com/questions/205555/the-most-sophisticated-way-for-creating-comma-separated-strings-from-a -collection/205712 # 205712 – gimel
http://stackoverflow.com/questions/285523 – toolkit