我想使用startsWith()
的{{1}}方法,但忽略了这种情况。
假设我有String
“会话”,我在“sEsSi”上使用String
,那么它应该返回startsWith
。
答案 0 :(得分:85)
在测试之前,使用toUpperCase()
或toLowerCase()
来标准化字符串。
答案 1 :(得分:78)
一个选项是将它们转换为小写或大写:
"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, 5)); // true
它检查needle
中的0
区域是否从5
开始,从索引haystack
开始直到0
长度5
} 或不。第一个参数是true
,意味着它将进行不区分大小写的匹配。
如果只有你是 正则表达式 的忠实粉丝,你可以这样做:
System.out.println(haystack.matches("(?i)" + Pattern.quote(needle) + ".*"));
(?i)
嵌入标志用于忽略大小写匹配。
答案 2 :(得分:4)
myString.toLowerCase().startsWith(starting.toLowerCase());
答案 3 :(得分:4)
试试这个,
String session = "Session";
if(session.toLowerCase().startsWith("sEsSi".toLowerCase()))
答案 4 :(得分:4)
我知道我来晚了,但是从Apache Commons Lang 3使用StringUtils.startsWithIgnoreCase()怎么办?
示例:
StringUtils.startsWithIgnoreCase(string, "start");
只需将以下依赖项添加到pom.xml文件中(以您使用Maven的假设为前提):
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
答案 5 :(得分:1)
您可以使用someString.toUpperCase().startsWith(someOtherString.toUpperCase())
答案 6 :(得分:0)
你可以随时
"Session".toLowerCase().startsWith("sEsSi".toLowerCase());
答案 7 :(得分:0)
使用start和toLowerCase一起开始
像这样"Session".toLowerCase().startsWith("sEsSi".toLowerCase());
答案 8 :(得分:0)