2011-12-08 19 views
5

¿Existe una manera simple de convertir un ArrayList que contiene solo caracteres en un string? Entonces, digamos que tenemosConvertir ArrayList <Characters> en un String

ArrayList<Character> arrayListChar = new ArrayList<Character>(); 
arrayListChar.add(a); 
arrayListChar.add(b); 
arrayListChar.add(c); 

De modo que la lista de arreglos contiene a, b y c. Idealmente, lo que me gustaría hacer es convertirlo en un "abc" String.

+1

Posible duplicado de la pregunta: http://stackoverflow.com/q/6324826/601409 – EkcenierK

+0

se proporcionaron respuestas aún mejores aquí: http://stackoverflow.com/questions/523871/best-way-to-concatenate-list -of-string-objects Se trata de concatenar la lista de cadenas, pero cerrar. – jFrenetic

Respuesta

0

Puede anular el método toString e implementar el formato String en el mismo.

3
Iterator<Character> it = arrayListChar.iterator(); 
StringBuilder sb = new StringBuilder(); 

while(it.hasNext()) { 
    sb.append(it.next()); 
} 

System.out.println(sb.toString()); 
3

Puede usar Apache Common Lang's clase StringUtils. Tiene una función join() como la que se encuentra en PHP.

continuación, el código:

StringUtils.join(arrayListChar, "") 

generaría:

abc 
0

método de reemplazo toString de ArrayList o la mejor extender la clase ArrayList para que pueda utilizar de edad ArrayList toString() en otro lugar en el código

0
String s = ""; 
    for(Character i : arrayListChar) 
      s += i; 

EDITAR - como se señaló anteriormente, debe hacerlo solo use un código como este si el número de cadenas para concatenar es pequeño.

+0

Las cadenas son inmutables, creará una nueva cadena para cada concatenación. Muy mal uso de la memoria. Intenta usar un StringBuilder en su lugar. – Tudor

+0

Sí, tienes toda la razón. Gracias – Wozza

1
int size = list.size(); 
    char[] chars = new char[size]; 
    for (int i = 0; i < size; i++) { 
     if (list.size() != size) { 
      throw new ConcurrentModificationException(); 
     } 
     chars[i] = list.get(i); 
    } 
    String s = new String(chars); 
0

Usando la magia de expresiones regulares:

String result = list.toString().replaceAll(", |\\[|\\]", ""); 

obtener la representación de cadena de la lista, que es

[a, b, c] 

y luego quitar las cuerdas "[", "]", and ", ".

Cuestiones relacionadas