如何使用'string.startsWith()'方法忽略大小写?
我想使用方法,但忽略了这种情况。string.startsWith()
假设我有“会话”,我在“sEsSi”上使用,那么它应该返回。String
startsWith
true
我怎样才能做到这一点?
我想使用方法,但忽略了这种情况。string.startsWith()
假设我有“会话”,我在“sEsSi”上使用,那么它应该返回。String
startsWith
true
我怎样才能做到这一点?
在测试字符串之前,请使用 或 对其进行标准化。toUpperCase()
toLowerCase()
一种选择是将它们都转换为小写或大写:
"Session".toLowerCase().startsWith("sEsSi".toLowerCase());
这是错误的。请参见: https://stackoverflow.com/a/15518878/14731另一种选择是使用 String#regionMatches()
方法,该方法采用一个布尔参数,说明是否进行区分大小写的匹配。你可以这样使用它:
String haystack = "Session";
String needle = "sEsSi";
System.out.println(haystack.regionMatches(true, 0, needle, 0, needle.length())); // true
它检查从索引到长度的区域是否存在从索引到长度的区域。第一个参数是 ,意味着它将执行不区分大小写的匹配。needle
0
5
haystack
0
5
true
如果你是正则表达式的忠实粉丝,你可以做这样的事情:
System.out.println(haystack.matches("(?i)" + Pattern.quote(needle) + ".*"));
(?i)
嵌入式标志用于忽略大小写匹配。