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

假设我有两条线

字符串s1=“AbBaCca”;
字符串s2=“bac”;

我想执行一项检查,返回s2是否包含在s1中。我可以这样做:

返回s1.contains(s2);

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

返回s1.toLowerCase().contains(s2.toLowerCase());

抛开这些不谈,还有没有其他(可能更好的)方法可以在不考虑区分大小写的情况下实现这一点

是,contains区分大小写。您可以使用java.util.regex.Pattern和不区分大小写的标志进行不区分大小写的匹配:

Pattern.compile(Pattern.quote(wantedStr),Pattern.CASE_不区分大小写)。matcher(source.find();

编辑:如果s2包含正则表达式特殊字符(其中有许多字符),请首先引用它。我已经更正了我的答案,因为这是第一个人们会看到的答案,但投票支持马特奎尔的答案,因为他指出了这一点

发表评论