HOWTO · Java

Cómo convertir una ArrayList en una cadena en Java

Aprende a convertir una ArrayList en una cadena en Java con un delimitador elegido o una representación entre corchetes.

En esta página

Para convertir una ArrayList en una String, elige si necesitas un valor por elemento con un delimitador o una representación entre corchetes para mostrarla. Para el texto unido con un delimitador, String.join() es una opción directa; StringBuilder es útil cuando necesitas personalizar el bucle. Los ejemplos siguientes usan Apple, Orange y Mango como valores de la lista.

Convertir ArrayList a String con el operador + en Java

El operador + concatena cadenas. En una lista corta y fija, puedes concatenar sus valores directamente y colocar separadores entre ellos. La concatenación repetida dentro de un bucle crea cadenas intermedias, así que usa StringBuilder para listas más grandes.

import java.util.ArrayList;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    String joined = fruits.get(0) + "," + fruits.get(1) + "," + fruits.get(2);
    System.out.println(joined);
  }
}

Convertir ArrayList a String usando el método append() en Java

Usa StringBuilder.append() para construir un resultado en un bucle. Añade el delimitador antes de cada valor excepto el primero; así evitas dejar un separador extra al final. Al llamar a toString() se devuelve la String completa.

import java.util.ArrayList;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    StringBuilder result = new StringBuilder();
    for (String fruit : fruits) {
      if (result.length() > 0) {
        result.append(", ");
      }
      result.append(fruit);
    }
    String joined = result.toString();
    System.out.println(joined);
  }
}

Convertir ArrayList a String usando el método join() en Java

String.join() combina los elementos usando el delimitador que proporciones. El separador aparece entre valores adyacentes y no se añade antes del primer valor ni después del último. Esta API se describe aquí sin especificar una versión mínima de Java.

import java.util.ArrayList;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    String joined = String.join(", ", fruits);
    System.out.println(joined);
  }
}

Convertir ArrayList a String usando la clase StringUtils en Java

Si tu proyecto ya usa Apache Commons Lang, StringUtils.join(fruits, ", ") une los valores con el separador proporcionado. Esta opción requiere la dependencia de Commons Lang en el classpath del proyecto; no forma parte de la biblioteca estándar de Java. Consulta la guía de la clase StringUtils para obtener más información sobre la biblioteca.

Convertir ArrayList a String usando el método replaceAll() en Java

Puedes eliminar los corchetes y el espacio de los separadores de List.toString() con replaceAll(), pero es un atajo de formato. Se basa en la representación de visualización de la lista, por lo que los valores que contienen comas o corchetes pueden hacer que el resultado sea ambiguo. Este ejemplo elimina solo los corchetes; deja sin cambios los separadores de coma y espacio de List.toString().

import java.util.ArrayList;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    String joined = fruits.toString().replaceAll("\\[|\\]", "");
    System.out.println(joined);
  }
}

Convertir ArrayList a String usando el método joining() en Java

Para un enfoque basado en streams, llama a stream() sobre la lista y recoge sus elementos con Collectors.joining(). El delimitador se inserta entre los valores. Esta API se describe sin afirmar una versión mínima de Java.

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    String joined = fruits.stream().collect(Collectors.joining(", "));
    System.out.println(joined);
  }
}

Convertir ArrayList a String usando el método deepToString() en Java

Arrays.deepToString() crea una representación entre corchetes al estilo de un array, útil para la visualización y para valores de arrays anidados. No crea una cadena simple unida por un delimitador. Convierte la lista en un array antes de pasarla al método.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class SimpleTesting {
  public static void main(String[] args) {
    List<String> fruits = new ArrayList<>();
    fruits.add("Apple");
    fruits.add("Orange");
    fruits.add("Mango");

    String representation = Arrays.deepToString(fruits.toArray());
    System.out.println(representation);
  }
}