logo

Java String compareTo() Metode med eksempler

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 , kommer den tilbake negativ Antall
  • 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:

  1. bruker int compareTo(Object obj)
  2. bruker int compareTo(String AnotherString)
  3. 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å:

  1. Sammenlign to strenger i Java
  2. Sammenlign to strenger leksikografisk i Java
  3. 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.