Concatenar varios String con coma

      • 15
      • mensajes
      • miembro desde
      • 30/12/04
    #1 Concatenar varios String con coma

    Buenas Noches Muchachos,

    Antes que nada nunca postee un problema de este tipo, en realidad no soy de postear si de ver que sucede en el foro. Vamos al problema, lo que sucede es que tengo que concatenar varios String que estan almacenado en un ArrayList ese array lo recorro y lo tengo que guardar en un String con todos los String con concatenado con coma lo que sucede que el ultimo de los String siempre me queda con coma y no logro encontrar la solucion para que no me quede al final la coma, por eso acudo a este foro.

    PD: quizas para mucho sea una boludes pero yo me estoy volviendo loco y no encuentro la solucion, si pueden ayudarme estare muy agradecido.

    Saludos,

  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    11 comentarios / 1375 Visitas

      • 13
      • mensajes
      • miembro desde
      • 17/03/06
    27/01/2012
    #2 Re: Concatenar varios String con coma

    La solución más sencilla es añadir el primero fuera del bucle e ir concatenando el resto de soluciones con una coma antes

    String cadenaResultado = array[0];
    for (int i=1, i<tamañoArray, i++) {
    cadenaResultado = cadenaResultado + "," + array[i];
    }

      • 15
      • mensajes
      • miembro desde
      • 30/12/04
    27/01/2012
    #3 Re: Concatenar varios String con coma

    Gracias por la respuesta, voy a ver como puedo hacer ya que estoy usando un ArrayList por que voy a manejar mucho volumen y el vector del ejemplo que me das es mucho mas lento ya que sincronico.

    Saludos,

      • 2,582
      • mensajes
      • miembro desde
      • 16/03/04
    31/01/2012
    #4 Re: Concatenar varios String con coma
    Cita Escrito por caito22 Ver mensaje
    ... y el vector del ejemplo que me das es mucho mas lento ya que sincronico.
    ¿?
    a dsromero le gusta esto.
      • 270
      • mensajes
      • miembro desde
      • 21/11/10
    31/01/2012
    #5 Re: Concatenar varios String con coma
    Cita Escrito por caito22 Ver mensaje
    Gracias por la respuesta, voy a ver como puedo hacer ya que estoy usando un ArrayList por que voy a manejar mucho volumen y el vector del ejemplo que me das es mucho mas lento ya que sincronico.
    wtf?

    Para hacer lo que digiste al principio usas StringUtils.join(arr, ",") donde arr es el ArrayList.
      • 2,943
      • mensajes
      • miembro desde
      • 03/08/10
    01/02/2012
    #6 Re: Concatenar varios String con coma

    No es más fácil poner un if dentro del for ?

    for(int i=0;i<ar.size();i++)
    {

    if(i==ar.size()-1)
    {
    s+=ar.get(i)+".";
    }else{
    s+=ar.get(i)+",";

    }

    }

      • 13
      • mensajes
      • miembro desde
      • 17/03/06
    01/02/2012
    #7 Re: Concatenar varios String con coma
    Cita Escrito por axeelcs Ver mensaje
    No es más fácil poner un if dentro del for ?

    for(int i=0;i<ar.size();i++)
    {

    if(i==ar.size()-1)
    {
    s+=ar.get(i)+".";
    }else{
    s+=ar.get(i)+",";

    }

    }
    Esto sería como lo que propuse yo pero un poco menos eficiente ya que tienes que comprobar el if en cada iteración del for, si sabes que la posición que vas a cumplir esa condición siempre será la primera es más óptimo empezar el bucle en la posición 1 habiendo concatenado ya el valor de la posición 0
      • 2,943
      • mensajes
      • miembro desde
      • 03/08/10
    01/02/2012
    #8 Re: Concatenar varios String con coma
    Cita Escrito por dsromero Ver mensaje
    Esto sería como lo que propuse yo pero un poco menos eficiente ya que tienes que comprobar el if en cada iteración del for, si sabes que la posición que vas a cumplir esa condición siempre será la primera es más óptimo empezar el bucle en la posición 1 habiendo concatenado ya el valor de la posición 0
    No dije nada xD
    -----Agregado el 1/2/2012 a las 09 : 18 : 33-----
    Otra opción que puede utilizar es con un while ...

    while(i<ar.size()-1)
    {
    s+=ar.get(i)+",";
    i++;
    }

    s+=ar.get(i)+".";

    Osea dentro del while hace todas las uniones -1 y la última la hace al final con un punto, es mas eficaz ?
      • 13
      • mensajes
      • miembro desde
      • 17/03/06
    01/02/2012
    #9 Re: Concatenar varios String con coma
    Cita Escrito por axeelcs Ver mensaje
    No dije nada xD
    -----Agregado el 1/2/2012 a las 09 : 18 : 33-----
    Otra opción que puede utilizar es con un while ...

    while(i<ar.size()-1)
    {
    s+=ar.get(i)+",";
    i++;
    }

    s+=ar.get(i)+".";

    Osea dentro del while hace todas las uniones -1 y la última la hace al final con un punto, es mas eficaz ?
    Si, con el while parece que sería más eficiente (tampoco soy un experto) y es prácticamente igual al ejemplo que puse yo en mi primer comentario:

    //primero uso el primer valor del array para inicializar la cadena
    String cadenaResultado = array[0];

    //y cuando recorro el array omito el primer elemento haciendo que el bucle sea de 1 al tamaño
    for (int i=1, i<tamañoArray, i++) {

    //como el primer elemento del array ya está en la cadena voy concatenando el resto precedidos de una ","
    cadenaResultado = cadenaResultado + "," + array[i];
    }

    La única diferencia que veo entre tu while y este for es que yo añado "a mano" el primer elemento y tu el último. Pero a nivel de rendimiento supongo que serán muy parecidos
      • 2,943
      • mensajes
      • miembro desde
      • 03/08/10
    01/02/2012
    #10 Re: Concatenar varios String con coma
    Cita Escrito por dsromero Ver mensaje
    Si, con el while parece que sería más eficiente (tampoco soy un experto) y es prácticamente igual al ejemplo que puse yo en mi primer comentario:

    //primero uso el primer valor del array para inicializar la cadena
    String cadenaResultado = array[0];

    //y cuando recorro el array omito el primer elemento haciendo que el bucle sea de 1 al tamaño
    for (int i=1, i<tamañoArray, i++) {

    //como el primer elemento del array ya está en la cadena voy concatenando el resto precedidos de una ","
    cadenaResultado = cadenaResultado + "," + array[i];
    }

    La única diferencia que veo entre tu while y este for es que yo añado "a mano" el primer elemento y tu el último. Pero a nivel de rendimiento supongo que serán muy parecidos
    Y una consulta ya que estamos, en el caso de que el quisiera terminar de concatenar con un "." , en el caso de tu for, tendrías que haces una sentencia al terminar el for :

    cadenaResultado+=".";

    no ?

    en ese caso se podría decir que es más "eficaz" el while, no ?
12 Último
IR ARRIBA