Strenge i Java er objekter, der kun understøttes internt af et array, hvilket betyder sammenhængende tildeling af hukommelse til tegn. Bemærk venligst, at strenge er uforanderlige i Java, hvilket betyder, at når vi først har oprettet et String-objekt og tildeler nogle værdier til det, kan vi ikke ændre indholdet. Vi kan dog oprette et andet String-objekt med de ændringer, vi ønsker.
String-klassen i Java omfatter en masse metoder til at udføre forskellige operationer på strenge, og vi vil fokusere på Java-strengen sammenligne med() metode i denne artikel.
Java String.compareTo() metode
Java sammenligne med() metoden sammenligner den givne streng med den aktuelle streng leksikografisk . Det returnerer et positivt tal, et negativt tal eller 0. Det sammenligner strenge baseret på Unicode værdi af hvert tegn i strengene.
Eksempel:
Java
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.>
Syntaks
int comparison = str1.compareTo(str2);>
Parametre:
- str1: String 1 til sammenligning
- str2: String 2 til sammenligning
Vender tilbage:
- hvis streng1> streng2 , vender det tilbage positiv nummer
- hvis streng1
, vender det tilbage negativ nummer - hvis streng1 == streng2 , vender det tilbage 0
Undtagelse: Det giver følgende to undtagelser:
- NullPointerException- hvis det angivne objekt er Null.
- ClassCastException- hvis det aktuelle objekt ikke kan sammenlignes med det angivne objekt.
Varianter af CompareTo()-metoden
Der er tre varianter af sammenligne med() metode som er som følger:
- bruger int compareTo(Object obj)
- bruger int compareTo(String AnotherString)
- bruger int compareToIgnoreCase(String str)
1. int compareTo(Object obj)
Denne metode sammenligner denne streng med et andet objekt.
Syntaks:
int compareTo(Object obj)>
Parametre:
obj: the Object to be compared.>
Returneringsværdi: Værdien 0 hvis argumentet er en streng leksikografisk lig med denne streng; en værdi mindre end 0, hvis argumentet er en streng leksikografisk større end denne streng; og en værdi større end 0, hvis argumentet er en streng leksikografisk mindre end denne streng.
Eksempel:
Nedenfor er implementeringen af 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)
Denne metode sammenligner to strenge leksikografisk.
Syntaks:
int compareTo(String anotherString)>
Parametre:
anotherString: the String to be compared.>
Returværdi: Værdien 0 hvis argumentet er en streng leksikografisk lig med denne streng; en værdi mindre end 0, hvis argumentet er en streng leksikografisk større end denne streng; og en værdi større end 0, hvis argumentet er en streng leksikografisk mindre end denne streng.
Eksempel:
Nedenfor er implementeringen af int compareTo(String anotherString):
Java
java hovedmetode
// 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));> >}> }> |
>
>Produktion
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6>
3. int compareToIgnoreCase(String str)
Denne metode sammenligner to strenge leksikografisk og ignorerer forskelle mellem kasus og bogstaver.
Syntaks:
int compareToIgnoreCase(String str)>
Parametre:
str: the String to be compared.>
Returneringsværdi: Denne metode returnerer et negativt heltal, nul eller et positivt heltal, da den angivne streng er større end, lig med eller mindre end denne streng, idet der ignoreres store og små bogstaver.
Eksempel:
Nedenfor er implementeringen af int compareToIgnoreCase(String str):
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>
Undtagelser i Java String compareTo() Method
compareTo()-metoden i Java kan rejse to mulige undtagelser:
- NullPointerException
- ClassCastException
compareTo() NullPointerException
I Java kaster compareTo()-metoden en NullPointerException, hvis et af de objekter, der sammenlignes, er nul . Dette sikrer, at du eksplicit håndterer nulværdier og forhindrer uventet adfærd.
Eksempel:
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 er en runtime-undtagelse og opstår, når to objekter af inkompatible typer sammenlignes i compareTo()-metoden.
Eksempel:
Java
alfabet og tal
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 også:
- Sammenlign to strenge i Java
- Sammenlign to strenge leksikografisk i Java
- Java Integer compareTo() metode
Konklusion
compareTo()-funktionen i Java bruges til at sammenligne to strenge eller objekter leksikografisk. Det returnerer et positivt, nul eller negativt heltal. I denne tutorial har vi dækket denne metode og diskuteret dens funktion og undtagelser.
Læs mere Java-strengmetoder
Java String CompareTo() Metode- ofte stillede spørgsmål
Hvordan sammenligner man strenge i Java?
Du kan sammenligne strenge i Java ved at bruge compareTo() metoden. Den accepterer to parametre og sammenligner dem leksikografisk.
Hvad er forskellen mellem compareTo()-metoden og equals()-metoden i Java?
equals() metode compareTo() metode Bruges til at kontrollere, om to objekter er nøjagtigt ens. Bruges til at sammenligne to objekter og bestemme deres relative rækkefølge. Returnerer en boolean:
- sandt, hvis objekterne betragtes som ens.
- falsk ellers.
Returnerer et heltal:
- Negativ værdi, hvis det første objekt anses for at være mindre end det andet.
- Nul, hvis objekterne betragtes som ens.
- Positiv værdi, hvis det første objekt anses for at være større end det andet.
Hvad returnerer compareTo () i Java?
compareTo()-metoden i Java returnerer et heltal. Det kan have tre mulige værdier:
- Negativ værdi: Når det første objekt betragtes som mindre end det andet.
- Nul: Når genstandene betragtes som ens.
- Positiv værdi: Når det første objekt anses for at være større end det andet.