2012-01-06 9 views
2

ここにシナリオがあります。大文字と小文字を区別しないパターン検索と大文字と小文字を区別して置換する方法を教えてください。

String strText = "ABC abc Abc aBC abC aBc ABc AbC"; 
// Adding a HTML content to this 
String searchText = "abc"; 
String strFormatted = strText.replaceAll(
    "(?i)" + searchText, 
    "<font color='red'>" + searchText + "</font>"); 

これは、すべての単語が小文字で、もちろん赤色の文字列を返します。 私の要件は、strFormattedをOriginal Stringと同じ大文字小文字のStringとして取得することですが、Fontタグを持つ必要があります。

これは可能ですか?

+0

は、いくつかの実際のコードを書く使用して代替を提案したいのですが? –

+1

ここで、あなたのコードによれば、元の文字列は 'strText'にあり、フォーマットされた文字列は' strFormatted'にあります。 – Jomoos

+0

これは本当のコードではありません..これだけ私はメイクアップ。とにかく、私は、フォントタグで置き換えた後、strFormattedのstrTextの大文字小文字を保持したいです。 –

答えて

6

逆参照を使用することができます。ような何か:

String strFormatted = strText.replaceAll(
    "(?i)(" + searchText + ")", 
    "<font color='red'>$1</font>"); 
+1

完全に動作します。 –

0

私はArrayList

String [] strText = {"ABC", "abc","Abc", "aBC", "abC", "aBc", "ABc", "AbC"}; 

    ArrayList<String> abc = new ArrayList<String>(); 
     for(int j=0;j<8;j++) 
     { 

      if("abc".equalsIgnoreCase(strText[j])) 
        { 
         abc.add("<font color='red'>"+strText[j]+"</font>"); 
        } 
     } 

    String strFormatted = abc.toString(); 
    System.out.println(strFormatted); 
+0

なぜあなたはそれを提案しますか?パフォーマンス?メンテナンス性?その他の理由? – Paul

+0

私のために働いています。私はちょうど興味がありました。 – Paul

関連する問題