2011-12-08 3 views
5

문자 만 들어있는 ArrayList를 문자열로 변환하는 간단한 방법이 있습니까? 그래서 우리는ArrayList <Characters>을 문자열로 변환

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

배열 목록에는 a, b 및 c가 포함되어 있습니다. 이상적으로 내가하고 싶은 것은 문자열을 "abc"로 바꾸는 것입니다.

+1

질문의 가능한 중복 : http://stackoverflow.com/q/6324826/601409 – EkcenierK

+0

더 나은 답변이 여기에 제공되었습니다. http://stackoverflow.com/questions/523871/best-way-to-concatenate-list -of-string-objects 문자열 목록을 연결하는 것이지만 닫는 방법입니다. – jFrenetic

답변

0

toString 메서드를 재정의하고 String 형식을 구현할 수 있습니다.

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

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

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

당신은 Apache Common Lang's 인 StringUtils 클래스를 사용할 수 있습니다. PHP에서 찾을 수있는 것처럼 join() 함수가 있습니다.

그런 다음 코드는 : 다른 곳)의 ArrayList의

abc 
0

재정의 toString 메소드 또는 오래된 ArrayList의 toString을 (사용할 수 있도록 더 나은 ArrayList 클래스를 확장 :

StringUtils.join(arrayListChar, "") 

가 생성 것 코드에서

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

EDIT - 이미 지적한대로 연결하려는 문자열의 수가 적은 경우에만이 코드를 사용하십시오.

+0

문자열은 변경 불가능합니다. 모든 연결에 대해 새 문자열을 만듭니다. 메모리를 매우 나쁘게 사용합니다. 대신 StringBuilder를 사용해보십시오. – Tudor

+0

그래, 네 말이 맞아. 감사 – 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

정규식 마법을 사용 :

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

[a, b, c] 

입니다 목록의 문자열 표현을 가져 오기 다음 문자열 "[", "]", and ", "를 제거합니다.

관련 문제