Javaで大文字と小文字を区別しないリテラル部分文字列を置き換える方法 質問する

Javaで大文字と小文字を区別しないリテラル部分文字列を置き換える方法 質問する

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

たとえば、現在の仕組みは次のようになります。

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

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

両方の例で「Bar」が返されるように、置換 (またはより適切な方法がある場合) で大文字と小文字を区別しないようにするにはどうすればよいですか?

ベストアンサー1

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

出力:

Bar

replaceAllは最初の引数を正規表現パターンとして扱うため、予期しない結果が生じる可能性があることに注意してください。これを解決するには、Pattern.quoteコメントで示唆されている通り。

おすすめ記事