2011-12-08 49 views
5

Có cách nào đơn giản để chuyển đổi một ArrayList chỉ chứa các ký tự thành một chuỗi không? Vì vậy, giả sử chúng tôi cóChuyển đổi ArrayList <Characters> thành một chuỗi

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

Vì vậy, danh sách mảng chứa a, b và c. Lý tưởng nhất những gì tôi muốn làm là biến nó thành một chuỗi "abc".

+1

Có thể trùng lặp câu hỏi: http://stackoverflow.com/q/6324826/601409 – EkcenierK

+0

các câu trả lời hay hơn được cung cấp tại đây: http://stackoverflow.com/questions/523871/best-way-to-concatenate-list -of-string-objects Đó là về việc ghép nối danh sách các chuỗi, nhưng đóng lại. – jFrenetic

Trả lời

0

Bạn có thể ghi đè phương thức toString và triển khai định dạng String trong đó.

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

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

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

Bạn có thể sử dụng lớp Apache Common Lang's StringUtils. Nó có hàm join() giống như bạn tìm thấy trong PHP.

Sau đó, mã:

StringUtils.join(arrayListChar, "") 

sẽ tạo ra:

abc 
0

phương pháp ghi đè toString của ArrayList hoặc tốt hơn để mở rộng các lớp ArrayList để bạn có thể sử dụng cũ ArrayList toString() ở một nơi khác trong mã

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

EDIT - như đã chỉ ra, bạn nên chỉ sử dụng mã như thế này nếu số lượng các chuỗi để nối là nhỏ.

+0

Chuỗi không thay đổi, bạn sẽ tạo một chuỗi mới cho mỗi lần nối. Sử dụng bộ nhớ rất xấu. Hãy thử sử dụng một StringBuilder thay thế. – Tudor

+0

Yup, bạn hoàn toàn đúng. Cảm ơn – 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

Sử dụng ma thuật regex:

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

Lấy chuỗi đại diện của danh sách, đó là

[a, b, c] 

và sau đó loại bỏ các dây "[", "]", and ", ".

Các vấn đề liên quan