2011-12-08 15 views
5

Esiste un modo semplice per convertire una ArrayList che contiene solo caratteri in una stringa? Quindi diciamo che abbiamoConverti ArrayList <Characters> in una stringa

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

Quindi l'elenco di array contiene a, b, e c. Idealmente, quello che vorrei fare è trasformarlo in una stringa "abc".

+1

Possibile duplicato della domanda: http://stackoverflow.com/q/6324826/601409 – EkcenierK

+0

qui sono state fornite anche risposte migliori: http://stackoverflow.com/questions/523871/best-way-to-concatenate-list -of-string-objects Si tratta di concatenare l'elenco di stringhe, ma chiudere. – jFrenetic

risposta

0

È possibile eseguire l'override del metodo toString e implementare la formattazione String al suo interno.

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

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

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

È possibile utilizzare la classe Apache Common Lang's StringUtils. Ha una funzione join() come la trovi in ​​PHP.

Quindi il codice:

StringUtils.join(arrayListChar, "") 

genererebbe:

abc 
0

metodo Override toString della ArrayList o per meglio estendere la classe ArrayList in modo che si può utilizzare vecchio ArrayList toString() da qualche altra parte nel codice

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

MODIFICA - come già indicato, si dovrebbe usa solo il codice come questo se il numero di stringhe da concatenare è piccolo.

+0

Le stringhe sono immutabili, verrà creata una nuova stringa per ogni concatenazione. Molto cattivo uso della memoria. Prova invece a utilizzare un oggetto StringBuilder. – Tudor

+0

Sì, hai ragione. Grazie – 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 regex:

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

Ottenere la rappresentazione String della lista, che è

[a, b, c] 

e poi rimuovere le corde "[", "]", and ", ".