java 如何使用`string.startsWith()`方法忽略大小写?

wfveoks0  于 2023-08-02  发布在  Java
关注(0)|答案(9)|浏览(166)

我想使用string.startsWith()方法,但忽略大小写。
假设我有String“Session”,我在“sEsSi”上使用startsWith,那么它应该返回true
我如何才能做到这一点?

tcbh2hod

tcbh2hod1#

使用toUpperCase()toLowerCase()在测试字符串之前对其进行标准化。

cwtwac6a

cwtwac6a2#

一个选项是将它们都转换为小写或大写:

"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


它检查从索引0直到长度5needle的区域是否存在于从索引0开始直到长度5haystack中。第一个参数是true,这意味着它将进行不区分大小写的匹配。
如果你是 Regex 的忠实粉丝,你可以这样做:

System.out.println(haystack.matches("(?i)" + Pattern.quote(needle) + ".*"));


(?i) embedded flag用于忽略大小写匹配。

ggazkfy8

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>

b1payxdu

b1payxdu4#

myString.toLowerCase().startsWith(starting.toLowerCase());

字符串

cx6n0qe3

cx6n0qe35#

试试这个

String session = "Session";
if(session.toLowerCase().startsWith("sEsSi".toLowerCase()))

字符串

7gs2gvoe

7gs2gvoe6#

myString.StartsWith(anotherString,StringComparison.OrdinalIgnoreCase)

m3eecexj

m3eecexj7#

可以使用someString.toUpperCase().startsWith(someOtherString.toUpperCase())

elcex8rz

elcex8rz8#

你总是可以

"Session".toLowerCase().startsWith("sEsSi".toLowerCase());

字符串

bis0qfac

bis0qfac9#

StartsWith(String value,bool ignoreCase,CultureInfo?文化)例如:

string test = "Session";
bool result = test.StartsWith("sEsSi", true, null);
Console.WriteLine(result);

字符串
点:在VS中通过右键点击StartsWith然后“pick definition”可以看到所有重载方法


的数据


相关问题