当前位置: 首页 > 面试题库 >

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

孙海
2023-03-14
问题内容

说我有两个弦,

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

我要执行s2包含在中的支票退回s1。我可以这样做:

return s1.contains(s2);

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

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

撇开所有这些,是否还有另一种(可能更好)的方法来完成此任务而不关心区分大小写?


问题答案:

是的,包含的内容区分大小写。你可以将java.util.regex.Pattern与CASE_INSENSITIVE标志一起使用,以区分大小写:

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

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



 类似资料:
  • 问题内容: 我有两个,和。如何忽略大小写检查是否包含在其中? 问题答案:

  • 问题内容: 在代码中检查的子字符串是: 但是我该如何在Swift中做到这一点? 问题答案: 您可以使用Swift进行完全相同的调用: Swift 4和Swift 5 在Swift 4中,String是值的集合,在Swift 2和3中并不是这样,因此您可以使用以下更简洁的代码1: 迅捷3.0+ 较早的斯威夫特 我希望这是一个有用的解决方案,因为包括我在内的某些人通过致电遇到了一些奇怪的问题。1个 P

  • 在中,检查中的子字符串的代码是: 但我如何在Swift中做到这一点呢?

  • 问题内容: 我想编写一个Java方法,如果字符串是回文,则返回true。 这是我到目前为止的内容: 我的问题是,它不考虑像这样的单词:回文。 在不区分大小写并忽略标点符号的情况下,测试这是否是回文式的最佳方法是什么。 问题答案: 使用此正则表达式删除所有标点和空格并将其转换为小写

  • 例如: 字符串1=helloworld字符串2=asdfuvjerhelloworld 这应该是真的。 另一个例子:字符串1=helloworld字符串2=lshewodxzr 这也应该是真的。 所以我正在研究如何创建一个方法,它将返回一个布尔值,检查第二个字符串是否包含第一个字符串中的字母。在第二个示例中,string2只有一次字母l,尽管字母l在string1中出现了三次,但仍然返回true。

  • 问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出: