Что такое метод CompareTo () в Java?
compareTo () используется для лексикографического сравнения двух строк. Каждый символ обеих строк преобразуется в значение Unicode. Однако, если обе строки равны, тогда этот метод возвращает 0, иначе это приведет только к отрицательному или положительному значению.
CompareTo определяется в интерфейсе java.lang.Comparable
Синтаксис :
public int compareTo(String str)
Ввод параметров:
str — этот метод принимает только один тип входных данных String.
Возвращает метод:
Этот метод Java возвращает тип данных int, который основан на лексикографическом сравнении двух строк.
- возвращает <0, тогда строка, вызывающая метод, сначала лексикографически
- возвращает == 0, тогда две строки лексикографически эквивалентны
- возвращает> 0, затем параметр, переданный методу сравнения, сначала лексикографически.
Давайте разберемся с примером:
Пример 1:
public class Sample_String { public static void main(String[] args) { String str_Sample = "a"; System.out.println("Compare To 'a' b is : " + str_Sample.compareTo("b")); str_Sample = "b"; System.out.println("Compare To 'b' a is : " + str_Sample.compareTo("a")); str_Sample = "b"; System.out.println("Compare To 'b' b is : " + str_Sample.compareTo("b")); } }
Вывод
Сравнить с ‘a’ b is: -1
Сравнить с ‘b’ a is: 1
Сравнить с ‘b’ b is: 0
Вот,
- Символ a стоит перед буквой b в алфавитном порядке. Следовательно, выход -1
- Символ б идет после алфавитного. Следовательно, вывод равен 1
- Символ b эквивалентен, следовательно, вывод равен 0.
Вы можете использовать метод Use «compareToIgnoreCase», если вы не хотите, чтобы результат был чувствительным к регистру.
Пример 2:
public class Sample_String { public static void main(String[] args) { //Compare to a String String str_Sample = "RockStar"; System.out.println("Compare To 'ROCKSTAR': " + str_Sample.compareTo("rockstar")); //Compare to - Ignore case System.out.println("Compare To 'ROCKSTAR' - Case Ignored: " + str_Sample.compareToIgnoreCase("ROCKSTAR")); } }
Вывод
Сравнить с ‘ROCKSTAR’: -32
Сравнить с ‘ROCKSTAR’ — регистр игнорируется: 0
Когда использовать метод CompareTo ()?
Метод CompareTo () используется для естественной сортировки строк. Естественная сортировка означает порядок сортировки, который применяется к объекту, например, лексический порядок для строки, числовой порядок для целых чисел сортировки и т. Д.
Лексический порядок — это не что иное, как алфавитный порядок. Метод compareTo выполняет последовательное сравнение букв в строке, имеющих одинаковую позицию.
В этом методе, если первая строка всегда лексикографически выше второй строки, она возвращает положительное число.
если a1> a2, он возвращает отрицательное число
если a1 <a2, он возвращает положительное число
если a1 == a2, возвращается 0
Пример 3:
public class Compare { public static void main(String[] args) { String s1 = "Guru1"; String s2 = "Guru2"; System.out.println("String 1: " + s1); System.out.println("String 2: " + s2); // Compare the two strings. int S = s1.compareTo(s2); // Show the results of the comparison. if (S < 0) { System.out.println("\"" + s1 + "\"" + " is lexicographically higher than " + "\"" + s2 + "\""); } else if (S == 0) { System.out.println("\"" + s1 + "\"" + " is lexicographically equal to " + "\"" + s2 + "\""); } else if (S > 0) { System.out.println("\"" + s1 + "\"" + " is lexicographically less than " + "\"" + s2 + "\""); } } }
Вывод:
Строка 1: Guru1
Строка 2: Guru2
«Guru1» лексикографически выше, чем «Guru2»