Учебники

19) Метод String CompareTo ()

Что такое метод 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»