不区分大小写的 String.contains 方法的替代方法是什么?

What is the alternative for String.contains method that is case insensitive?

从文件中将行作为字符串读取时,string.contains("someexamplestring") 将 return 输出区分大小写的字符串。

如果有 "someExampleString" 行,则不是 returning。

如何以不区分大小写的方式识别字符串?

实际上,这是 How to check if a String contains another String in a case insensitive manner in Java?

的副本

如果你的要求比较简单,只处理英文字母,你可以按照下面的答案。

你应该string.toLowerCase().contains("someExampleString".toLowerCase());.

从 Java SE 文档中阅读有关 public String toLowerCase() 的更多信息。

此外,正如Artur Biesiadowski在问题的评论部分所暗示的那样,在这里再次重申:

Regarding all the answers suggesting toLowerCase/toUpperCase - be careful if you go outside of ASCII space. There are some languages where going lower to upper and back (or other way around) is not consistent. Turkish with its dotless 'i' comes to mind : Dotted and dotless I


此外,为了更安全,您可以使用另一种方法 toLowerCase(Locale.English) 并始终将语言环境覆盖为英语。但是,限制是你不再国际化了。

string.toLowerCase(Locale.English).contains("someExampleString".toLowerCase(Locale.English));

首先对您的输入字符串使用 String.toLowerCase(str) 方法,然后再应用 String.contains(str) 方法。

您可以 toLowerCase() 您的字符串,然后 contains 使用您想要匹配的小写版本。

为了实现不区分大小写的操作,我们需要将两个字符串都设置为大写或小写的一种格式。toLowerCase'toUpperCase' 当您想执行包含操作时,方法会有所帮助

toLowerCase 有两种变体。

somestring.toLowerCase();
somestring.toLowerCase(Locale somelocale)

示例

String case1 = "Whosebug";
String case2 = "Whosebug";
bool isSame ;
isSame = case1.toLowerCase().Contains(case2.toLowerCase());

Note that equalsIgnoreCase() will be helpful when you want to compare two strings

您应该将两个字符串都转换为小写或大写。然后进行操作。

    Str.toUpperCase().contains("someexamplestring".toUpperCase());

                              or

    Str.toLowerCase().contains("someexamplestring".toLowerCase());

您可以使用正则表达式:

str.matches("(?i).*someexamplestring.*")