我想使用 string.startsWith()方法,但是忽略了大小写。
string.startsWith()
假设我有 String“ Session”并且在“ sEsSi”上使用 startsWith,那么它应该返回 true。
String
startsWith
true
我怎么才能做到呢?
一种选择是将它们转换为小写或大写:
"Session".toLowerCase().startsWith("sEsSi".toLowerCase());
另一种选择是使用 String#regionMatches()方法,它接受一个布尔参数,指出是否进行区分大小写的匹配。你可以这样使用它:
String#regionMatches()
String haystack = "Session"; String needle = "sEsSi"; System.out.println(haystack.regionMatches(true, 0, needle, 0, needle.length())); // true
检测从 0到 5长度的 needle区域是否存在于 haystack中,从 0到 5长度的 needle区域是否存在于 haystack中。第一个参数是 true,这意味着它将执行不区分大小写的匹配。
0
5
needle
haystack
如果你是 正则表达式的忠实粉丝,你可以这样做:
System.out.println(haystack.matches("(?i)" + Pattern.quote(needle) + ".*"));
(?i)嵌入式标志用于忽略大小写匹配。
(?i)
myString.toLowerCase().startsWith(starting.toLowerCase());
试试这个,
String session = "Session"; if(session.toLowerCase().startsWith("sEsSi".toLowerCase()))
你随时都可以
你可以使用 someString.toUpperCase().startsWith(someOtherString.toUpperCase())
someString.toUpperCase().startsWith(someOtherString.toUpperCase())
在测试之前使用 toUpperCase()或者 toLowerCase()来标准化你的字符串。
toUpperCase()
toLowerCase()
我知道我迟到了,但是从 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>
StartsWith (字符串值,bool IgnoreCase,CultureInfo? 文化) 例如:
string test = "Session"; bool result = test.StartsWith("sEsSi", true, null); Console.WriteLine(result);
点: 在 VS 中,右键单击 StartsWith,然后“选择定义”可以看到所有重载方法