java - 如何在 Java 中替换不区分大小写的文字子字符串

标签 java string replace substring case-insensitive

在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”?

最佳答案

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

输出:

Bar

值得一提的是,replaceAll 将第一个参数视为正则表达式模式,这可能会导致意外结果。要解决这个问题,也可以使用 Pattern.quote正如评论中所建议的那样。

关于java - 如何在 Java 中替换不区分大小写的文字子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5054995/

相关文章:

Java - 序列化/反序列化日期时出错

c++ - 为什么 stringstream::str() 会截断字符串?

javascript - 使替换函数不区分大小写

java - 测试 toString 但失败?

R:用第二个列表元素的值替换一个列表元素的值

javascript - jQuery 使用replaceText 和变量替换文本

java - 无法让 JUnit 使用我的 @Autowired 存储库和 MongoTemplate

java - 在 Linux 上运行 Java 时,如何避免因区分大小写而出现 FileNotFound 异常?

java - 在android中创建可触摸电线

Java替换不被引号包围的问号