2011-10-26 8 views
3

文字列に置き換えるために、リストに複数の文字を追加しました。ここには次のものがあります:リスト内の複数のアイテムを置き換えるにはどうすればよいですか?

List<Character> list = new ArrayList<Character>(); 
list.add(','); 
list.add('?'); 
list.add(','); 
list.add(':'); 
list.add('-'); 
list.add('('); 
list.add(')'); 
list.add(';'); 
list.add('/'); 

リスト内の文字のすべての文字列を文字列 "s"に置き換えたいとします。

s.replaceAll(list, ""); 

リストは文字列ではないので、もちろんできません。しかし、私は代わりに何をすることができますか?

EDIT私はリストにはそれが含まれていることを認識したい

String s = "I am cool; not good!"; 

ので、もし ";"と "!"を返し、文字列sの文字を何も置き換えません。だから、結果は次のようになります。あなたは絶対に一覧であなたの文字を定義する必要がある場合は、

s.replaceAll("[,?:();/-]",""); 

、このような正規表現をリストに変換する:むしろ

"I am cool not good" 
+0

同じでない場合、これははIndexOutOfBoundsExceptionがスローされます。リストからすべてのキャラクターを削除することを意味しますか?または、それを交換すると、*何*に置き換えられますか? –

+0

リスト内のすべての文字を文字列の ""で置き換えたいとします。 –

+1

リストではなく正規表現を使用するのはなぜですか? –

答えて

5

List<Character>を使用するよりも、私は正規表現を使用します最初。

+0

+1 - 私はそれを入力中でした!これらのゆっくりとした指。 –

+0

ありがとう、それは働いた! –

1

リストではなく、正規表現を使用してください。

StringBuilder mySB = new StringBuilder(myString); 
for (Character myChar : list) { 
    mySB.replace(String.valueOf(myChar), ""); 
} 

myString = mySB.toString(); 
1

チェックアウトのApache CommonsのStringUtils.replaceEach((String text, String[] searchList, String[] replacementList))それはあなたが検索する値のリストを提供することを可能にすると、単一の行に関連した代替品のリスト:そうでなければ、あなたのようなもので立ち往生することができます。

:検索および置換配列の長さは、それが文字のみを保持しているので、あなたは、リスト内の文字列を探すことができません

関連する問題