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?
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?
Use toUpperCase()
or toLowerCase()
to standardise your string before testing it.
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, needle.length())); // 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.
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>
try this,
String session = "Session";
if(session.toLowerCase().startsWith("sEsSi".toLowerCase()))
You can use String.search() function with regex that will give you the index of the first substring match of the search string. Then you can test the returned index to see if it is 0. 'i' at the end makes the search case insensitive.
const session = 'Session';
const startsWith = session.search(/sEsSi/i) === 0;
You can use someString.toUpperCase().startsWith(someOtherString.toUpperCase())
myString.StartsWith(anotherString, StringComparison.OrdinalIgnoreCase)
You can always do
"Session".toLowerCase().startsWith("sEsSi".toLowerCase());
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