在Java中,如何检查字符串是否包含子字符串(忽略大小写)?

2022-08-31 04:16:59

我有两个 s 和 .如何检查 是否包含在 中,忽略大小写?Stringstr1str2str2str1


答案 1
str1.toUpperCase().contains(str2.toUpperCase())

UPD:

最初的答案是使用方法。但是,正如一些人正确指出的那样,Unicode中存在一些例外,最好使用 。因为:toLowerCase()toUpperCase()

有些语言知道一个大写变体的多个小写变体。


答案 2

怎么样?matches()

String string = "Madam, I am Adam";

// Starts with
boolean  b = string.startsWith("Mad");  // true

// Ends with
b = string.endsWith("dam");             // true

// Anywhere
b = string.indexOf("I am") >= 0;        // true

// To ignore case, regular expressions must be used

// Starts with
b = string.matches("(?i)mad.*");

// Ends with
b = string.matches("(?i).*adam");

// Anywhere
b = string.matches("(?i).*i am.*");