Метод Java String compareTo () сравнивает две строки лексикографически (в порядке словаря). Сравнение основано на значении Unicode каждого символа в строках.
Синтаксис compareTo()
метода:
string.compareTo(String str)
Здесь строка - это объект String
класса.
compareTo () Параметры
compareTo()
Метод принимает один параметр.
- str - строка для сравнения
compareTo () Возвращаемое значение
- возвращает 0, если строки равны
- возвращает отрицательное целое число, если в словарном порядке
string
стоит передstr
аргументом - возвращает положительное целое число, если
string
послеstr
аргумента в словарном порядке
Пример: Java String compareTo ()
class Main ( public static void main(String() args) ( String str1 = "Learn Java"; String str2 = "Learn Java"; String str3 = "Learn Kolin"; int result; // comparing str1 with str2 result = str1.compareTo(str2); System.out.println(result); // 0 // comparing str1 with str3 result = str1.compareTo(str3); System.out.println(result); // -1 // comparing str3 with str1 result = str3.compareTo(str1); System.out.println(result); // 1 ) )
Вот,
- str1 и str2 равны. Следовательно,
str1.compareTo(str2)
возвращает 0. - str1 предшествует str3 в словарном порядке. Следовательно,
str1.compareTo(str3)
возвращается отрицательное значение, аstr3.compareTo(str1)
возвращается положительное значение.
Пример 2: проверьте, равны ли две строки
class Main ( public static void main(String() args) ( String str1 = "Learn Python"; String str2 = "Learn Java"; // if str1 and str2 are equal, the result is 0 if (str1.compareTo(str2) == 0) ( System.out.println("str1 and str2 are equal"); ) else ( System.out.println("str1 and str2 are not equal"); ) ) )
Вывод
str1 и str2 не равны
Этот compareTo()
метод учитывает регистр букв (прописные и строчные).
Пример 3: compareTo () с регистром
class Main ( public static void main(String() args) ( String str1 = "Learn Java"; String str2 = "learn Java"; int result; // comparing str1 with str2 result = str1.compareTo(str2); System.out.println(result); // -32 ) )
При "Learn Java"
сравнении с "learn Java"
, мы не получаем 0. Это потому, что compareTo()
учитывается регистр букв.
Заметки:
- Если вам нужно сравнить две строки, игнорируя различия в регистрах, используйте метод Java String compareToIgnoreCase ().
- Если перейти
null
кcompareTo()
методу, вы получите ошибку.
Связанное руководство: Java String equals ()