假设我有两条线,

String s1 = "AbBaCca";
String s2 = "bac";

我想执行判断,返回s2包含在s1内.我可以通过以下方式做到这一点:

return s1.contains(s2);

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

return s1.toLowerCase().contains(s2.toLowerCase());

抛开这些不谈,还有没有其他(可能更好的)方法来实现这一点,而不考虑案件敏感性?

推荐答案

是的,包含区分大小写.您可以使用带有CASE_INSENSECT标志的java.util.regex.Pattern进行不区分大小写的匹配:

Pattern.compile(Pattern.quote(wantedStr), Pattern.CASE_INSENSITIVE).matcher(source).find();

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

Java相关问答推荐

Android -如何修复Java.time.zone. ZoneRulesExcept:未知时区ID:Europe/Kyiv

如何审查Java dtos中的自定义注释字段?

当一个链表中间有一个循环时,它的松散部分会发生什么?

在Java Stream上调用collect方法出现意外结果

Java中是否有某种类型的池可以避免重复最近的算术运算?

确定Java中Math.Ranb()输出的上限

DTO到实体,反之亦然,控制器和服务之间的哪一层应该处理转换?

蒙蒂霍尔比赛结果不正确

Java流传输一个列表并创建单个对象

Helidon 4和Http API

由于 list 中的权限错误,Android未生成

将响应转换为带值的键

无法使用Freemarker从XML中读取重复的标记值

如何在透视表中添加对计数列的筛选?

为什么StandardOpenOption.CREATE不能通过Ubuntu在中小企业上运行?

如果第一位数字和最后一位数字相差超过一位,您将如何获得随机数?

JOLT根据值删除并保留其余的json键

未调用OnBackPressedCallback-Activitiy立即终止

Kotlin-仅替换字符串中最后一个给定的字符串

整数->;双取消框,但双->;int不';t开箱.为什么?