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
コメントで示唆されている通り。