1. ホーム
  2. java

[解決済み] Javaで大文字小文字を区別せずにリテラル文字列を置換する方法

2022-05-12 06:51:19

質問

メソッドを使用する replace(CharSequence target, CharSequence replacement) を使う場合、どのようにすれば大文字と小文字を区別しないターゲットにすることができますか?

例えば、今現在の方法では

String target = "FooBar";
target.replace("Foo", "") // would return "Bar"

String target = "fooBar";
target.replace("Foo", "") // would return "fooBar"

どちらの例も "Bar" を返すように、replace (またはもっと適切な方法があれば) が大文字小文字を区別しないようにするにはどうしたらよいでしょうか。

どのように解決するのですか?

String target = "FOOBar";
target = target.replaceAll("(?i)foo", "");
System.out.println(target);

出力します。

Bar

特筆すべきは replaceAll は最初の引数を正規表現として扱うので、予期しない結果を引き起こす可能性があります。これを解決するには、さらに Pattern.quote を使用することをお勧めします。