Метод startWith() строки, игнорирующий регистр

Я хочу использовать startsWith() метод String, но игнорируя этот случай.

Предположим, что у меня есть String "Session", и я использую startsWith на "sEsSi", тогда он должен возвращать true.

Ответ 1

Используйте toUpperCase() или toLowerCase() для стандартизации вашей строки перед ее тестированием.

Ответ 2

Один из вариантов состоит в том, чтобы преобразовать оба из них в строчные или прописные:

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

Другим вариантом является использование метода 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, означает, что он будет делать нечувствительность к регистру.


И если вы только большой поклонник Regex, вы можете сделать что-то вроде этого:

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

(?i) встроенный флаг предназначен для сопоставления случаев игнорирования.

Ответ 3

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

Ответ 4

попробуйте это,

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

Ответ 5

Вы всегда можете сделать

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

Ответ 6

Вы можете использовать someString.toUpperCase().startsWith(someOtherString.toUpperCase())

Ответ 7

начинается с и toLowerCase вместе

как это

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

Ответ 8

Вы можете сделать что-то вроде этого: -

str.toLowerCase().startsWith(searchStr.toLowerCase());