首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中检查一个字符串是否包含另一个不区分大小写的字符串?

如何在Java中检查一个字符串是否包含另一个不区分大小写的字符串?
EN

Stack Overflow用户
提问于 2008-09-17 19:37:33
回答 16查看 459.4K关注 0票数 441

假设我有两根弦,

代码语言:javascript
复制
String s1 = "AbBaCca";
String s2 = "bac";

我想执行一个检查,返回s1中包含的s2。我可以使用以下命令来实现:

代码语言:javascript
复制
return s1.contains(s2);

我非常确定contains()是区分大小写的,但是通过阅读文档,我不能确定这一点。如果是这样,那么我想我最好的方法应该是:

代码语言:javascript
复制
return s1.toLowerCase().contains(s2.toLowerCase());

抛开所有这些,有没有其他(可能更好的)方法来实现这一点,而不关心大小写敏感?

EN

回答 16

Stack Overflow用户

发布于 2008-09-18 07:48:30

the answer by Dave L.的一个问题是当s2包含\d等正则表达式标记时。

您希望在s2上调用Pattern.quote():

代码语言:javascript
复制
Pattern.compile(Pattern.quote(s2), Pattern.CASE_INSENSITIVE).matcher(s1).find();
票数 283
EN

Stack Overflow用户

发布于 2012-03-05 08:36:51

您可以使用

代码语言:javascript
复制
org.apache.commons.lang3.StringUtils.containsIgnoreCase("AbBaCca", "bac");

对于这类事情,Apache Commons库非常有用。这个特殊的表达式可能比正则表达式更好,因为正则表达式在性能方面总是很昂贵。

票数 191
EN

Stack Overflow用户

发布于 2012-01-17 01:29:05

一种更简单的方法(不用担心模式匹配)是将两个String都转换为小写:

代码语言:javascript
复制
String foobar = "fooBar";
String bar = "FOO";
if (foobar.toLowerCase().contains(bar.toLowerCase()) {
    System.out.println("It's a match!");
}
票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/86780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档