Метод compareToIgnoreCase
Метод compareToIgnoreCase сравнивает текущую строку
с другой строкой лексикографически, игнорируя регистр
символов. В параметр мы передаем строку, с которой
нужно сравнить текущую строку. Метод возвращает
целое число: отрицательное значение, если текущая
строка меньше переданной; ноль, если строки равны;
положительное значение, если текущая строка больше
переданной.
Сравнение происходит посимвольно. Каждый символ обеих строк приводится к нижнему регистру, а затем сравниваются их коды Unicode. Возвращаемая разница равна разности кодов первых несовпавших символов. Если одна строка является префиксом другой, то меньшей считается более короткая строка.
Синтаксис
str.compareToIgnoreCase(anotherString)
Пример
Сравним строку "abcde" со строкой
"ABCDE". Регистр игнорируется, поэтому
строки считаются равными и метод вернет 0:
public class Main
{
public static void main(String[] args)
{
String str1 = "abcde";
String str2 = "ABCDE";
System.out.println(str1.compareToIgnoreCase(str2));
}
}
Результат выполнения кода:
0
Пример
Сравним строку "abcde" со строкой
"abcdf". Первые четыре символа совпадают,
а на пятом позиции символы отличаются. Метод
вернет разность кодов символов 'e' и
'f', то есть отрицательное число:
public class Main
{
public static void main(String[] args)
{
String str1 = "abcde";
String str2 = "abcdf";
System.out.println(str1.compareToIgnoreCase(str2));
}
}
Результат выполнения кода:
-1
Пример
Сравним строку "12345" со строкой
"1234". Строка "1234" является
префиксом строки "12345", поэтому она
считается меньшей, а метод вернет положительное
число, равное разности длин строк:
public class Main
{
public static void main(String[] args)
{
String str1 = "12345";
String str2 = "1234";
System.out.println(str1.compareToIgnoreCase(str2));
}
}
Результат выполнения кода:
1
Пример
Сравним строку "abcde" со строкой
"xyz". Первые символы отличаются, поэтому
метод вернет разность кодов символов 'a'
и 'x' с учетом приведения к нижнему
регистру:
public class Main
{
public static void main(String[] args)
{
String str1 = "abcde";
String str2 = "xyz";
System.out.println(str1.compareToIgnoreCase(str2));
}
}
Результат выполнения кода:
-23
Смотрите также
-
метод
compareTo,
который сравнивает строки с учетом регистра -
метод
equalsIgnoreCase,
который сравнивает строки на равенство без учета регистра -
метод
equals,
который сравнивает строки на равенство с учетом регистра -
класс
String,
который описывает работу со строками в Java