如何替换 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

值得一提的是,将第一个参数视为正则表达式模式,这可能会导致意外的结果。要解决此问题,请按照注释中的建议使用Pattern.quotereplaceAll


答案 2

如果您不关心大小写,那么如果它返回所有大写字母,您可能并不重要:

target.toUpperCase().replace("FOO", "");