我想使用string.startsWith()方法,但忽略大小写。假设我有String“Session”,我在“sEsSi”上使用startsWith,那么它应该返回true。我如何才能做到这一点?
string.startsWith()
String
startsWith
true
tcbh2hod1#
使用toUpperCase()或toLowerCase()在测试字符串之前对其进行标准化。
toUpperCase()
toLowerCase()
cwtwac6a2#
一个选项是将它们都转换为小写或大写:
"Session".toLowerCase().startsWith("sEsSi".toLowerCase());
这是错误的。参见:https://stackoverflow.com/a/15518878/14731另一种选择是使用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的区域是否存在于从索引0开始直到长度5的haystack中。第一个参数是true,这意味着它将进行不区分大小写的匹配。如果你是 Regex 的忠实粉丝,你可以这样做:
0
5
needle
haystack
System.out.println(haystack.matches("(?i)" + Pattern.quote(needle) + ".*"));
型(?i) embedded flag用于忽略大小写匹配。
(?i)
ggazkfy83#
我知道我迟到了,但是使用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>
型
b1payxdu4#
myString.toLowerCase().startsWith(starting.toLowerCase());
字符串
cx6n0qe35#
试试这个
String session = "Session"; if(session.toLowerCase().startsWith("sEsSi".toLowerCase()))
7gs2gvoe6#
myString.StartsWith(anotherString,StringComparison.OrdinalIgnoreCase)
m3eecexj7#
可以使用someString.toUpperCase().startsWith(someOtherString.toUpperCase())
someString.toUpperCase().startsWith(someOtherString.toUpperCase())
elcex8rz8#
你总是可以
bis0qfac9#
StartsWith(String value,bool ignoreCase,CultureInfo?文化)例如:
string test = "Session"; bool result = test.StartsWith("sEsSi", true, null); Console.WriteLine(result);
字符串点:在VS中通过右键点击StartsWith然后“pick definition”可以看到所有重载方法
的数据
的
9条答案
按热度按时间tcbh2hod1#
使用
toUpperCase()
或toLowerCase()
在测试字符串之前对其进行标准化。cwtwac6a2#
一个选项是将它们都转换为小写或大写:
这是错误的。参见:https://stackoverflow.com/a/15518878/14731
另一种选择是使用
String#regionMatches()
方法,它接受一个布尔参数,说明是否进行区分大小写的匹配。你可以这样使用它:型
它检查从索引
0
直到长度5
的needle
的区域是否存在于从索引0
开始直到长度5
的haystack
中。第一个参数是true
,这意味着它将进行不区分大小写的匹配。如果你是 Regex 的忠实粉丝,你可以这样做:
型
(?i)
embedded flag用于忽略大小写匹配。ggazkfy83#
我知道我迟到了,但是使用Apache Commons Lang 3中的StringUtils.startsWithIgnoreCase()怎么样?
范例:
字符串
只需将以下依赖项添加到pom.xml文件(假设您使用Maven):
型
b1payxdu4#
字符串
cx6n0qe35#
试试这个
字符串
7gs2gvoe6#
myString.StartsWith(anotherString,StringComparison.OrdinalIgnoreCase)
m3eecexj7#
可以使用
someString.toUpperCase().startsWith(someOtherString.toUpperCase())
elcex8rz8#
你总是可以
字符串
bis0qfac9#
StartsWith(String value,bool ignoreCase,CultureInfo?文化)例如:
字符串
点:在VS中通过右键点击StartsWith然后“pick definition”可以看到所有重载方法
的数据
的