複数の大文字小文字を区別しない文字列の置き換え

アビシェーク:

私は、文字列から複数の大文字小文字を区別しない文字列を置換します。

私が使用している可能性があり: org.apache.commons.lang.StringUtils.replaceEach(text, searchList, replacementList)

しかし、大文字と小文字を区別した文字列のための作品です。

大文字小文字を区別しない文字列のために働く同様の方法はありますか?

static String[] old = {"ABHISHEK","Name"};
static String[] nw = {"Abhi","nick name"};
static String s="My name is Abhishek";
System.out.println(StringUtils.replaceEach(s, old, nw));

出力:

My name is Abhishek

予想:

My nick name is Abhi
ダングエン:

あなたは、使用しようとすることができ、正規表現、それをアーカイブします

String str = "Dang DANG dAng dang";
//replace all dang(ignore case) with Abhiskek
String result = str.replaceAll("(?i)dang", "Abhiskek");
System.out.println("After replacement:" + "   " + result);

結果:

交換後:Abhiskek Abhiskek Abhiskek Abhiskek

EDIT


String[] old = {"ABHISHEK","Name"};
String[] nw = {"Abhi","nick name"};
String s="My name is Abhishek";
//make sure old and nw have same size please
for(int i =0; i < old.length; i++) {
    s = s.replaceAll("(?i)"+old[i], nw[i]);
}
System.out.println(s);

結果:

私のニックネームはAbhiです

基本的な理想的な:正規表現は、ケースを無視してでReplaceAll()

コメント@flownから、あなたが使用する必要があります(ありがとうございます)

str.replaceAll("(?i)" + Pattern.quote(old[i]), nw[i]);

:正規表現お菓子異なる意味を持ついくつかの特殊文字、EXので.としてany single character

使っだから、Pattern.quoteこれを行います。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=197784&siteId=1
おすすめ