88678


Javaの`replaceAll`メソッドについて質問です。  
以下のコードで`replaceAll`を使い、大文字のAと小文字のaを両方含めBに変換したいのですが、  
以下のコードだと大文字のAだけが`replaceAll`に反応してしまい、小文字のaが反応しません。  
`replaceAll`で大文字小文字区別せずに検出するには、どのようなコードを書けばいいでしょうか？  
`equals`と同じように`replaceAll.IgnoreCase`なども試してみましたが、`cannnot find
symbol`とエラーが出てきてしまいます。

* * *

**現状のコード：**

[code]

    public class Main{
        public static void main (String args[]){
            String str = "AaBbCc";
            String afterStr = str.replaceAll("A","B"); //ここで本来なら大文字小文字区別せずに出力する
            System.out.println(afterStr);
        }
    }
    
[/code]


CC BY-SA 4.0
2022-05-06T18:19:14.730
88676
2022-05-06T21:09:12.010
2022-05-06T21:09:12.010
47127
51596
question
java
replaceAllメソッドで大文字と小文字を区別せずに判定する方法


大文字のAと小文字のaを両方含めBに変換したいのであれば、

[code]

    String afterStr = str.replaceAll("A","B");
    
[/code]

を

[code]

    String afterStr = str.replaceAll("[Aa]","B"); 
    
[/code]

に変えればAとaがBに置換できます。


CC BY-SA 4.0
2022-05-06T20:51:30.800
88677
2022-05-06T20:51:30.800
35558
88676
answer

[code]

        String afterStr = str.replaceAll("(?i)a","B");
    
[/code]

[CASE_INSENSITIVE](https://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#CASE_INSENSITIVE)

> `public static final int CASE_INSENSITIVE`
>
> Enables case-insensitive matching.
>
> By default, case-insensitive matching assumes that only characters in the
> US-ASCII charset are being matched. Unicode-aware case-insensitive matching
> can be enabled by specifying the UNICODE_CASE flag in conjunction with this
> flag.
>
> **Case-insensitive matching can also be enabled via the embedded flag
> expression (?i)**.


CC BY-SA 4.0
2022-05-06T21:03:04.080
88678
2022-05-06T21:03:04.080
47127
88676
answer