Strenger i Java er objekter som kun støttes internt av en matrise, noe som betyr sammenhengende tildeling av minne for tegn. Vær oppmerksom på at strenger er uforanderlige i Java, noe som betyr at når vi oppretter et String-objekt og tilordner noen verdier til det, kan vi ikke endre innholdet. Vi kan imidlertid lage et annet String-objekt med de modifikasjonene vi ønsker.
String-klassen til Java omfatter mange metoder for å utføre forskjellige operasjoner på strenger, og vi vil fokusere på Java-strengen sammenligne med() metoden i denne artikkelen.
Java String.compareTo() metode
Java sammenligne med() metoden sammenligner den gitte strengen med gjeldende streng leksikografisk . Den returnerer et positivt tall, et negativt tall eller 0. Den sammenligner strenger basert på Unicode-verdi av 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.'> );> > }> > }> }> |
>
>
Produksjon:
Geeks and Geeks are lexicographically equal.>
Syntaks
int comparison = str1.compareTo(str2);>
Parametere:
- str1: String 1 for sammenligning
- str2: String 2 for sammenligning
Returnerer:
- hvis streng1> streng2 , kommer den tilbake positivt Antall
- hvis streng1
- hvis streng1 == streng2 , kommer den tilbake 0
Unntak: Den gir følgende to unntak:
- NullPointerException- hvis det angitte objektet er Null.
- ClassCastException- hvis gjeldende objekt ikke kan sammenlignes med spesifisert objekt.
Varianter av CompareTo()-metoden
Det er tre varianter av sammenligne med() metode som er som følger:
- bruker int compareTo(Object obj)
- bruker int compareTo(String AnotherString)
- bruker int compareToIgnoreCase(String str)
1. int compareTo(Object obj)
Denne metoden sammenligner denne strengen med et annet objekt.
Syntaks:
int compareTo(Object obj)>
Parametere:
obj: the Object to be compared.>
Returverdi: Verdien 0 hvis argumentet er en streng leksikografisk lik denne strengen; en verdi mindre enn 0 hvis argumentet er en streng leksikografisk større enn denne strengen; og en verdi større enn 0 hvis argumentet er en streng leksikografisk mindre enn denne strengen.
Eksempel:
Nedenfor er 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));> > }> }> |
>
>Produksjon
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6>
2. int compareTo(String anotherString)
Denne metoden sammenligner to strenger leksikografisk.
Syntaks:
int compareTo(String anotherString)>
Parametere:
anotherString: the String to be compared.>
Returverdi: Verdien 0 hvis argumentet er en streng leksikografisk lik denne strengen; en verdi mindre enn 0 hvis argumentet er en streng leksikografisk større enn denne strengen; og en verdi større enn 0 hvis argumentet er en streng leksikografisk mindre enn denne strengen.
Eksempel:
Nedenfor er implementeringen av 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));> > }> }> |
>
>Produksjon
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6>
3. int compareToIgnoreCase(String str)
Denne metoden sammenligner to strenger leksikografisk, og ignorerer kasusforskjeller.
Syntaks:
int compareToIgnoreCase(String str)>
Parametere:
str: the String to be compared.>
Returverdi: Denne metoden returnerer et negativt heltall, null eller et positivt heltall ettersom den angitte strengen er større enn, lik eller mindre enn denne strengen, og ignorerer store og små bokstaver.
Eksempel:
Nedenfor er implementeringen av 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));> > }> }> |
>
>Produksjon
Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0>
Unntak i Java String compareTo() Method
compareTo()-metoden i Java kan gi to mulige unntak:
- NullPointerException
- ClassCastException
compareTo() NullPointerException
I Java kaster compareTo()-metoden et NullPointerException hvis ett av objektene som sammenlignes er null . Dette sikrer at du eksplisitt håndterer nullverdier og forhindrer uventet oppførsel.
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);> }> }> |
>
>
Produksjon:
Exception in thread 'main' java.lang.NullPointerException at cmp5.main(cmp5.java:11)>
compareTo() ClassCastException
Det er et kjøretidsunntak og oppstår når to objekter av inkompatible typer sammenlignes i compareTo()-metoden.
Eksempel:
Java
alfabet og tall
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);> > }> }> |
>
>
Produksjon:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here>
Les også:
- Sammenlign to strenger i Java
- Sammenlign to strenger leksikografisk i Java
- Java Integer compareTo()-metoden
Konklusjon
compareTo()-funksjonen i Java brukes til å sammenligne to strenger eller objekter leksikografisk. Det returnerer et positivt, null eller negativt heltall. I denne opplæringen har vi dekket denne metoden og diskutert dens virkemåte og unntak.
Les mer Java-strengmetoder
Java String CompareTo()-metoden – vanlige spørsmål
Hvordan sammenligne strenger i Java?
Du kan sammenligne strenger i Java ved å bruke compareTo()-metoden. Den aksepterer to parametere og sammenligner dem leksikografisk.
Hva er forskjellen mellom compareTo()-metoden og equals()-metoden i Java?
equals() metode compareTo()-metoden Brukes til å sjekke om to objekter er nøyaktig like. Brukes til å sammenligne to objekter og bestemme deres relative rekkefølge. Returnerer en boolsk:
- sant hvis objektene anses like.
- usant ellers.
Returnerer et heltall:
- Negativ verdi hvis det første objektet anses som mindre enn det andre.
- Null hvis objektene anses like.
- Positiv verdi hvis det første objektet anses som større enn det andre.
Hva returnerer compareTo () i Java?
compareTo()-metoden i Java returnerer et heltall. Den kan ha tre mulige verdier:
- Negativ verdi: Når det første objektet anses som mindre enn det andre.
- Null: Når objektene anses like.
- Positiv verdi: Når det første objektet anses som større enn det andre.