Java String compareTo()

Java String.compareTo() сравнивает две строки лексикографически(в порядке словаря) с учетом регистра. Для сравнения без учета регистра используйте метод compareToIgnoreCase().

1. Строки в лексикографическом порядке

Если строка «string1» в словаре предшествует другой строке «string2», то при сравнении строк говорят, что string2 больше, чем «string1».

  • string1 > string2 – «string1» следует ПОСЛЕ «string2» в словаре.
  • string1 < string2 – «string1» стоит ПЕРЕД «string2» в словаре.
  • string1 = string2 – «string1» и «string2» равны.

2. API String.compareTo()

Функция compareTo() принимает один аргумент типа String. Вторая строка — это сам объект String, для которого вызывается метод. Обратите внимание, что compareTo() выполняет сравнение строк на основе значения Unicode каждого символа в строках.

int result = string1.compareTo(string2);

Результатом этого метода является целочисленное значение, где –

  • положительное целое число – строка1 лексикографически следует за строкой2.
  • отрицательное целое число – string1 лексикографически предшествует string2.
  • ноль – обе строки равны.

3. Программа Java для сравнения строк

Следующая программа Java сравнивает две строки с учетом регистра, используя метод compareTo(). Мы используем Hamcrest-соответствия для утверждения возвращаемых значений.

String name = "alex";//same stringassertThat(name.compareTo("alex"), equalTo(0));//Different casesassertThat(name.compareTo("Alex"), greaterThan(0));assertThat(name.compareTo("ALEX"), greaterThan(0));//Different stringsassertThat(name.compareTo("alexa"), lessThan(0));assertThat(name.compareTo("ale"), greaterThan(0));

4. Разница между compareTo() и equals()

Различия между методами compareTo() и equals() следующие:

  • Метод compare() сравнивает лексикографически(упорядочивая по словарю), а equals() проверяет содержимое обеих строк, хотя оба метода чувствительны к регистру.
  • Тип возвращаемого значения compareTo() — это целочисленный тип, заключающий, что строка больше, меньше или равна другой строке. Тип возвращаемого значения equals() — это логический, что означает, что содержимое обеих строк равно или нет.

Ссылка: Документация по Java String

Прокрутить вверх