考虑:
public static void main(String[] args) {
String s = "AbcD";
System.out.println(s.contains("ABCD"));
System.out.println(s.contains("AbcD"));
}
Run Code Online (Sandbox Code Playgroud)
输出:
false
true
Run Code Online (Sandbox Code Playgroud)
无论如何,我都要求结果在两种情况下都是正确的.可能吗?
san*_*hat 34
在使用之前,您需要将两个字符串转换为相同的大小写 contains
s.toLowerCase().contains("ABCD".toLowerCase());
Run Code Online (Sandbox Code Playgroud)
并不是特别有效,但是您可以使用Pattern匹配器进行不区分大小写的匹配:
Pattern pattern = Pattern.compile(Pattern.quote(s), Pattern.CASE_INSENSITIVE);
pattern.matcher("ABCD").find();
pattern.matcher("AbcD").find();
Run Code Online (Sandbox Code Playgroud)
另请注意,它不会神奇地解决语言环境问题,但toLowercase(Locale)与结合使用Pattern.UNICODE_CASE标志时,它的处理方式将有所不同,它可能能够一次处理所有语言环境。
| 归档时间: |
|
| 查看次数: |
52567 次 |
| 最近记录: |