Java String compareTo () -Methode: Verwendung mit Beispielen

Inhaltsverzeichnis:

Anonim

Was ist die compareTo () -Methode in Java?

compareTo () wird zum lexikografischen Vergleich zweier Zeichenfolgen verwendet. Jedes Zeichen beider Zeichenfolgen wird in einen Unicode-Wert konvertiert. Wenn jedoch beide Zeichenfolgen gleich sind, gibt diese Methode 0 zurück, andernfalls ergibt sich nur ein negativer oder positiver Wert.

Die Java String compareTo () -Methode ist in der Schnittstelle java.lang.Comparable definiert

Syntax: So schreiben Sie eine compareTo () -Methode in Java :

public int compareTo(String str)

Parametereingabe:

str - Die Funktion compareTo () in Java akzeptiert nur einen Eingabe-String-Datentyp.

Methodenrückgabe:

Diese Java-Methode compareTo () gibt einen int-Datentyp zurück, der auf dem lexikografischen Vergleich zwischen zwei Zeichenfolgen basiert.

  • Gibt <0 zurück, dann ist der String, der die Methode aufruft, zuerst lexikografisch
  • Gibt == 0 zurück, dann sind die beiden Zeichenfolgen lexikografisch äquivalent
  • Gibt> 0 zurück, dann ist der an die Java-Methode compareTo () übergebene Parameter zuerst lexikografisch.

Java String compareTo () -Methode Beispiel:

Beispiel 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"));}}

Ausgabe

Vergleiche mit 'a' b ist: -1

Vergleiche mit 'b' a ist: 1 Vergleiche mit 'b' b ist: 0

Hier,

  • Das Zeichen a steht alphabetisch vor b. Daher ist die Ausgabe -1
  • Zeichen b steht alphabetisch nach a. Daher ist die Ausgabe 1
  • Zeichen b sind äquivalent, daher ist die Ausgabe 0.

Sie können die Methode "compareToIgnoreCase" verwenden, falls das Ergebnis nicht zwischen Groß- und Kleinschreibung unterscheiden soll. Lassen Sie uns mit einem Java compareTo () Beispiel verstehen.

Beispiel 2:

public class Sample_String {public static void main(String[] args) {//Compare to a StringString str_Sample = "RockStar";System.out.println("Compare To 'ROCKSTAR': " + str_Sample.compareTo("rockstar"));//Compare to - Ignore caseSystem.out.println("Compare To 'ROCKSTAR' - Case Ignored: " + str_Sample.compareToIgnoreCase("ROCKSTAR"));}}

Ausgabe

Vergleiche mit 'ROCKSTAR': -32 Vergleiche mit 'ROCKSTAR' - Fall ignoriert: 0

Wann wird die Methode compareTo () in Java verwendet?

Die Java String compareTo () -Methode wird verwendet, um eine natürliche Sortierung für Zeichenfolgen durchzuführen. Natürliche Sortierung bedeutet die Sortierreihenfolge, die für das Objekt gilt, z. B. die lexikalische Reihenfolge für Zeichenfolgen, die numerische Reihenfolge für die Sortierung von Ganzzahlen usw.

Die lexikalische Reihenfolge ist nichts anderes als die alphabetische Reihenfolge. Die Java-Methode compareTo () führt einen sequentiellen Vergleich von Buchstaben in der Zeichenfolge durch, die dieselbe Position haben.

Wenn bei dieser Methode die erste Zeichenfolge immer lexikografisch höher als die zweite Zeichenfolge ist, wird eine positive Zahl zurückgegeben.

Wenn a1> a2, wird eine negative Zahl zurückgegeben

Wenn a1

Wenn a1 == a2, wird 0 zurückgegeben

Lassen Sie uns mit Java String compareTo () Beispiel verstehen.

Beispiel 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 + "\"");}}}

Ausgabe:

String 1: Guru1

String 2: Guru2 "Guru1" ist lexikographisch höher als "Guru2"