'How to use `string.startsWith()` method ignoring the case?
I want to use string.startsWith() method but ignoring the case.
Suppose I have String "Session" and I use startsWith on "sEsSi" then it should return true.
How can I achieve this?
Solution 1:[1]
One option is to convert both of them to either lowercase or uppercase:
"Session".toLowerCase().startsWith("sEsSi".toLowerCase());
This is wrong. See: https://stackoverflow.com/a/15518878/14731
Another option is to use String#regionMatches() method, which takes a boolean argument stating whether to do case-sensitive matching or not. You can use it like this:
String haystack = "Session";
String needle = "sEsSi";
System.out.println(haystack.regionMatches(true, 0, needle, 0, 5)); // true
It checks whether the region of needle from index 0 till length 5 is present in haystack starting from index 0 till length 5 or not. The first argument is true, means it will do case-insensitive matching.
And if only you are a big fan of Regex, you can do something like this:
System.out.println(haystack.matches("(?i)" + Pattern.quote(needle) + ".*"));
(?i) embedded flag is for ignore case matching.
Solution 2:[2]
I know I'm late, but what about using StringUtils.startsWithIgnoreCase() from Apache Commons Lang 3 ?
Example :
StringUtils.startsWithIgnoreCase(string, "start");
Just add the following dependency to your pom.xml file (taking the hypothesis that you use Maven) :
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
Solution 3:[3]
myString.toLowerCase().startsWith(starting.toLowerCase());
Solution 4:[4]
try this,
String session = "Session";
if(session.toLowerCase().startsWith("sEsSi".toLowerCase()))
Solution 5:[5]
You can use someString.toUpperCase().startsWith(someOtherString.toUpperCase())
Solution 6:[6]
StartsWith(String value, bool ignoreCase, CultureInfo? culture) e.g:
string test = "Session";
bool result = test.StartsWith("sEsSi", true, null);
Console.WriteLine(result);
point: in VS by right-clicking on StartsWith and then "pick definition" can see all overloading method
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Gili |
| Solution 2 | Sébastien Vandamme |
| Solution 3 | agad |
| Solution 4 | newuser |
| Solution 5 | Prasad Kharkar |
| Solution 6 | pedram |


