startsWith()方法的字符串忽略大小写

时间:2013-10-03 08:16:33

标签: java string

我想使用startsWith()的{​​{1}}方法,但忽略了这种情况。

假设我有String“会话”,我在“sEsSi”上使用String,那么它应该返回startsWith

9 个答案:

答案 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)

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

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

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

enter image description here

enter image description here