2011-12-08 16 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 ", "を削除します。

関連する問題