Strängar i Java är objekt som endast stöds internt av en array, vilket innebär kontinuerlig tilldelning av minne för tecken. Observera att strängar är oföränderliga i Java, vilket innebär att när vi väl har skapat ett String-objekt och tilldelar det några värden kan vi inte ändra innehållet. Men vi kan skapa ett annat String-objekt med de ändringar vi vill ha.
String-klassen i Java innehåller många metoder för att utföra olika operationer på strängar och vi kommer att fokusera på Java-strängen jämföra med() metod i den här artikeln.
Java String.compareTo() metod
Java jämföra med() metoden jämför den givna strängen med den aktuella strängen lexikografiskt . Den returnerar ett positivt tal, ett negativt tal eller 0. Den jämför strängar baserat på Unicode-värde av varje tecken i strängarna.
Exempel:
Java
tring till int
public> class> StringCompareTo {> > public> static> void> main(String[] args) {> > String str1 => 'Geeks'> ;> > String str2 => 'Geeks'> ;> > int> comparison = str1.compareTo(str2);> > if> (comparison <> 0> ) {> > System.out.println(str1 +> ' comes before '> + str2 +> ' lexicographically.'> );> > }> else> if> (comparison>> 0> ) {> > System.out.println(str1 +> ' comes after '> + str2 +> ' lexicographically.'> );> > }> else> {> > System.out.println(str1 +> ' and '> + str2 +> ' are lexicographically equal.'> );> > }> > }> }> |
>
>
Produktion:
Geeks and Geeks are lexicographically equal.>
Syntax
int comparison = str1.compareTo(str2);>
Parametrar:
- str1: Sträng 1 för jämförelse
- str2: Sträng 2 för jämförelse
Returnerar:
- om sträng1> sträng2 , den återkommer positiv siffra
- om sträng1
- om sträng1 == sträng2 , den återkommer 0
Undantag: Det ger följande två undantag:
- NullPointerException- om det angivna objektet är Null.
- ClassCastException- om det aktuella objektet inte kan jämföras med det angivna objektet.
Varianter av CompareTo()-metoden
Det finns tre varianter av jämföra med() metod som är följande:
- använder int compareTo(Object obj)
- använder int compareTo(String AnotherString)
- använder int compareToIgnoreCase(String str)
1. int compareTo(Object obj)
Denna metod jämför denna sträng med ett annat objekt.
Syntax:
int compareTo(Object obj)>
Parametrar:
obj: the Object to be compared.>
Returvärde: Värdet 0 om argumentet är en sträng som är lexikografiskt lika med denna sträng; ett värde mindre än 0 om argumentet är en sträng som är lexikografiskt större än denna sträng; och ett värde större än 0 om argumentet är en sträng lexikografiskt mindre än denna sträng.
Exempel:
Nedan är implementeringen av int compareTo(Object obj):
Java
// Java code to demonstrate the> // working of compareTo()> public> class> Cmp1 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeksforgeeks'> ;> > String str2 => new> String(> 'geeksforgeeks'> );> > String str3 => new> String(> 'astha'> );> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks object> > System.out.print(> > 'Difference of geeksforgeeks(obj) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha object> > System.out.print(> > 'Difference of astha(obj) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str3));> > }> }> |
>
>Produktion
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6>
2. int compareTo(String anotherString)
Denna metod jämför två strängar lexikografiskt.
Syntax:
int compareTo(String anotherString)>
Parametrar:
anotherString: the String to be compared.>
Returvärde: Värdet 0 om argumentet är en sträng som är lexikografiskt lika med denna sträng; ett värde mindre än 0 om argumentet är en sträng lexikografiskt större än denna sträng; och ett värde större än 0 om argumentet är en sträng lexikografiskt mindre än denna sträng.
Exempel:
Nedan är implementeringen av int compareTo(String anotherString):
Java
// Java code to demonstrate the> // working of compareTo()> public> class> Cmp2 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeksforgeeks'> ;> > String str2 => 'geeksforgeeks'> ;> > String str3 => 'astha'> ;> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks string> > System.out.print(> > 'Difference of geeksforgeeks(str) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha string> > System.out.print(> > 'Difference of astha(str) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str3));> > }> }> |
>
npm ren cache
>Produktion
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6>
3. int compareToIgnoreCase(String str)
Denna metod jämför två strängar lexikografiskt och ignorerar skillnader mellan skiftlägen.
Syntax:
int compareToIgnoreCase(String str)>
Parametrar:
str: the String to be compared.>
Returvärde: Den här metoden returnerar ett negativt heltal, noll eller ett positivt heltal eftersom den angivna strängen är större än, lika med eller mindre än denna sträng, och ignorerar skiftlägesöverväganden.
Exempel:
Nedan är implementeringen av int compareToIgnoreCase(String str):
sträng hitta c++
Java
// Java code to demonstrate the> // working of compareToIgnoreCase()> public> class> Cmp3 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeks'> ;> > String str2 => 'gEEkS'> ;> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks string> > // case sensitive> > System.out.print(> > 'Difference of geeks and gEEkS (case sensitive) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha string> > // case insensitive> > // using compareToIgnoreCase()> > System.out.print(> > 'Difference of geeks and gEEkS (case insensitive) : '> );> > System.out.println(str1.compareToIgnoreCase(str2));> > }> }> |
>
>Produktion
Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0>
Undantag i Java String compareTo() Method
compareTo()-metoden i Java kan ge upphov till två möjliga undantag:
- NullPointerException
- ClassCastException
compareTo() NullPointerException
I Java kastar metoden compareTo() ett NullPointerException om något av objekten som jämförs är null . Detta säkerställer att du explicit hanterar nollvärden och förhindrar oväntat beteende.
Exempel:
Java
public> class> cmp5> {> // main method> public> static> void> main(String[] args)> {> > String str => null> ;> > // null is invoking the compareTo method. Hence, the NullPointerException> // will be raised> int> no = str.compareTo(> 'Geeks'> );> > System.out.println(no);> }> }> |
>
>
Produktion:
Exception in thread 'main' java.lang.NullPointerException at cmp5.main(cmp5.java:11)>
compareTo() ClassCastException
Det är ett runtime-undantag och inträffar när två objekt av inkompatibla typer jämförs i metoden compareTo().
Exempel:
Java
public> class> ClassCastExceptionExample {> > public> static> void> main(String[] args) {> > Object obj1 => 'Hello'> ;> > Object obj2 => 10> ;> // Integer object> > // Explicitly cast obj2 to String to force the exception> > int> comparison = ((String) obj2).compareTo(obj1);> > System.out.println(> 'Comparison: '> + comparison);> > }> }> |
>
>
Produktion:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here>
Läs också:
- Jämför två strängar i Java
- Jämför två strängar lexikografiskt i Java
- Java Integer compareTo()-metoden
Slutsats
compareTo()-funktionen i Java används för att jämföra två strängar eller objekt lexikografiskt. Det returnerar ett positivt, noll eller negativt heltal. I den här handledningen har vi täckt denna metod och diskuterat dess funktion och undantag.
Läs mer Java-strängmetoder
Java String CompareTo() Method- FAQs
Hur jämför man strängar i Java?
Du kan jämföra strängar i Java med metoden compareTo(). Den accepterar två parametrar och jämför dem lexikografiskt.
söndra karta
Vad är skillnaden mellan metoden compareTo() och metoden equals() i Java?
metoden equals(). compareTo()-metoden Används för att kontrollera om två objekt är exakt likadana. Används för att jämföra två objekt och bestämma deras relativa ordning. Returnerar ett booleskt värde:
- sant om objekten anses lika.
- falskt annars.
Returnerar ett heltal:
- Negativt värde om det första objektet anses vara mindre än det andra.
- Noll om objekten anses lika.
- Positivt värde om det första objektet anses vara större än det andra.
Vad returnerar compareTo () i Java?
compareTo()-metoden i Java returnerar ett heltal. Det kan ha tre möjliga värden:
- Negativt värde: När det första objektet anses vara mindre än det andra.
- Noll: När objekten anses lika.
- Positivt värde: När det första objektet anses vara större än det andra.