Java String CompareTo() Methode: Hoe te gebruiken met voorbeelden

Wat is de CompareTo()-methode in Java?

vergelijk met() wordt gebruikt voor het lexicografisch vergelijken van twee strings. Elk teken van beide tekenreeksen wordt omgezet in een Unicode-waarde. Als beide tekenreeksen echter gelijk zijn, retourneert deze methode 0, anders resulteert dit alleen in een negatieve of positieve waarde.

De Java String-methode CompareTo() is gedefinieerd in de interface java.lang.Comparable

Syntaxis: hoe u een CompareTo()-methode in Java schrijft:

public int compareTo(String str)

Parameterinvoer:

str – De functie CompareTo() in Java accepteert slechts één invoertekenreeksgegevenstype.

Methode retourneert:

Deze Java-methode CompareTo() retourneert een int-gegevenstype dat is gebaseerd op de lexicografische vergelijking tussen twee tekenreeksen.

  • retourneert < 0, waarna de String die de methode aanroept lexicografisch als eerste staat
  • retourneert == 0, dan zijn de twee strings lexicografisch equivalent
  • retourneert > 0, dan is de parameter die wordt doorgegeven aan de Java CompareTo()-methode lexicografisch gezien als eerste.

Java String-methode CompareTo() Voorbeeld:

CompareTo() Java-voorbeeld 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"));
    }

}

Verwachte resultaten

Compare To 'a' b is : -1
Compare To 'b' a is : 1
Compare To 'b' b is : 0

Hier

  • Teken a komt alfabetisch vóór b. De uitvoer is dus -1
  • Teken b komt alfabetisch na a. De output is dus 1
  • Teken b is equivalent, dus de uitvoer is 0.

U kunt de methode Use “compareToIgnoreCase” gebruiken als u niet wilt dat het resultaat hoofdlettergevoelig is. Laten we het begrijpen met een Java CompareTo()-voorbeeld.

CompareTo() Java-voorbeeld 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"));
    }
}

Verwachte resultaten

Compare To 'ROCKSTAR': -32
Compare To 'ROCKSTAR' - Case Ignored: 0

Wanneer moet ik de methode CompareTo() gebruiken in Java?

De Java String CompareTo()-methode wordt gebruikt om natuurlijke sortering op string uit te voeren. Natuurlijke sortering betekent de sorteervolgorde die op het object van toepassing is, bijvoorbeeld de lexicale volgorde voor String, de numerieke volgorde voor het sorteren van gehele getallen, enz.

Lexicale volgorde is niets anders dan alfabetische volgorde. CompareTo() De Java-methode voert een opeenvolgende vergelijking uit van letters in de tekenreeks die dezelfde positie hebben.

Bij deze methode retourneert de eerste string, als deze lexicografisch gezien altijd hoger is dan de tweede string, een positief getal.

als a1 > a2, retourneert het een negatief getal

als a1 < a2, retourneert het een positief getal

als a1 == a2, retourneert het 0

Laten we het begrijpen met Java String CompareTo() Voorbeeld.

CompareTo() Java-voorbeeld 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 + "\"");
        }
    }
}

Verwachte resultaten:

String 1: Guru1
String 2: Guru2
"Guru1" is lexicographically higher than "Guru2"