在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”?
Using the method replace(CharSequence target, CharSequence replacement) in String, how can I make the target case-insensitive?
For example, the way it works right now:
String target = "FooBar"; target.replace("Foo", "") // would return "Bar" String target = "fooBar"; target.replace("Foo", "") // would return "fooBar"How can I make it so replace (or if there is a more suitable method) is case-insensitive so that both examples return "Bar"?
最满意答案
String target = "FOOBar"; target = target.replaceAll("(?i)foo", ""); System.out.println(target);输出:
Bar值得一提的是, replaceAll将第一个参数视为正则表达式,这可能会导致意想不到的结果。 为了解决这个问题,还可以使用Pattern.quote来评论。
String target = "FOOBar"; target = target.replaceAll("(?i)foo", ""); System.out.println(target);Output:
BarIt's worth mentioning that replaceAll treats the first argument as a regex pattern, which can cause unexpected results. To solve this, also use Pattern.quote as suggested in the comments.
更多推荐
发布评论