Java-merkkijono vertailuTo()-menetelmä esimerkein

Javan merkkijonot ovat objekteja, joita vain taulukko tukee sisäisesti, mikä tarkoittaa jatkuvaa muistin varaamista merkeille. Huomaa, että merkkijonot ovat muuttumattomia Javassa, mikä tarkoittaa, että kun luomme String-objektin ja annamme sille arvoja, emme voi muuttaa sisältöä. Voimme kuitenkin luoda toisen merkkijono-objektin haluamillamme muokkauksilla.

Javan String-luokka sisältää paljon menetelmiä erilaisten toimintojen suorittamiseksi merkkijonoilla ja keskitymme Java-merkkijonoon. vertaa() menetelmä tässä artikkelissa.

Java String.compareTo() -menetelmä

Java vertaa() menetelmä vertaa annettua merkkijonoa nykyiseen merkkijonoon leksikografisesti . Se palauttaa positiivisen luvun, negatiivisen luvun tai 0:n. Se vertaa merkkijonoja arvon perusteella Unicode-arvo merkkijonojen jokaisesta merkistä.

Esimerkki:

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>>> + str2 +> ' lexicographically.'> );> > }> else> {> > System.out.println(str1 +> ' and '> + str2 +> ' are lexicographically equal.'> );> > }> > }> }>

Lähtö:

Geeks and Geeks are lexicographically equal. 

Syntaksi

int comparison = str1.compareTo(str2); 

Parametrit:

  • str1: Merkkijono 1 vertailua varten
  • str2: Merkkijono 2 vertailua varten

Palautukset:

  • jos merkkijono1> merkkijono2 , se palaa positiivinen määrä
  • jos merkkijono1 , se palaa negatiivinen määrä
  • jos merkkijono1 == merkkijono2 , se palaa 0

Poikkeus: Se antaa seuraavat kaksi poikkeusta:

  • NullPointerException- jos määritetty objekti on Null.
  • ClassCastException- jos nykyistä objektia ei voida verrata määritettyyn objektiin.

Vertaa()-menetelmän muunnelmia

On kolme varianttia -lta vertaa() menetelmällä, jotka ovat seuraavat:

  1. käyttämällä int vertaa(Object obj)
  2. käyttämällä int vertaaTo(String AnotherString)
  3. käyttämällä int:tä vertaaIgnoreCase(String str)

1. int vertaa(Object obj)

Tämä menetelmä vertaa tätä merkkijonoa toiseen objektiin.

Syntaksi:

int compareTo(Object obj) 

Parametrit:

  obj:   the Object to be compared. 

Palautusarvo: Arvo 0, jos argumentti on merkkijono, joka on leksikografisesti sama kuin tämä merkkijono; arvo on pienempi kuin 0, jos argumentti on tätä merkkijonoa leksikografisesti suurempi merkkijono; ja arvo, joka on suurempi kuin 0, jos argumentti on tätä merkkijonoa leksikografisesti pienempi merkkijono.

Esimerkki:

Alla on int vertailuTo(Object obj) toteutus:

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

Lähtö

Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6 

2. int vertaaTo(String otherString)

Tämä menetelmä vertaa kahta merkkijonoa leksikografisesti.

Syntaksi:

int compareTo(String anotherString) 

Parametrit:

  anotherString:    the String to be compared. 

Palautusarvo: Arvo 0, jos argumentti on merkkijono, joka on leksikografisesti sama kuin tämä merkkijono; arvo on pienempi kuin 0, jos argumentti on tätä merkkijonoa leksikografisesti suurempi merkkijono; ja arvo, joka on suurempi kuin 0, jos argumentti on tätä merkkijonoa leksikografisesti pienempi merkkijono.

Esimerkki:

Alla on int vertailuTo(String otherString) toteutus:

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

Lähtö

Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6 

3. int vertaaIgnoreCase(String str)

Tämä menetelmä vertaa kahta merkkijonoa leksikografisesti jättäen huomioimatta kirjainkoot.

Syntaksi:

int compareToIgnoreCase(String str) 

Parametrit:

  str:   the String to be compared. 

Palautusarvo: Tämä menetelmä palauttaa negatiivisen kokonaisluvun, nollan tai positiivisen kokonaisluvun, koska määritetty merkkijono on suurempi, yhtä suuri tai pienempi kuin tämä merkkijono, kirjainkokoa huomioimatta.

Esimerkki:

Alla on int vertailuToIgnoreCase(String str) toteutus:

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

Lähtö

Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0 

Poikkeukset Java-merkkijono vertailuTo()-menetelmässä

Javassa vertailuTo()-menetelmä voi tuoda esiin kaksi mahdollista poikkeusta:

  • NullPointerException
  • ClassCastException

vertaa() NullPointerException

Javassa vertaa()-menetelmä heittää NullPointerExceptionin, jos jompikumpi verrattavista objekteista on tyhjä . Tämä varmistaa, että käsittelet nolla-arvoja eksplisiittisesti ja estää odottamattoman toiminnan.

Esimerkki:

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

Lähtö:

  Exception in thread 'main' java.lang.NullPointerException      at cmp5.main(cmp5.java:11) 

vertaa() ClassCastException

Se on ajonaikainen poikkeus, ja se tapahtuu, kun kahta yhteensopimattoman tyyppistä objektia verrataan vertailuTo()-menetelmässä.

Esimerkki:

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

Lähtö:

./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here 

Lue myös:

  1. Vertaa kahta merkkijonoa Javassa
  2. Vertaa kahta merkkijonoa leksikografisesti Javassa
  3. Java Integer vertailuTo() -menetelmä

Johtopäätös

Javassa vertaaTo()-funktiota käytetään kahden merkkijonon tai objektin vertaamiseen leksikografisesti. Se palauttaa positiivisen, nollan tai negatiivisen kokonaisluvun. Tässä opetusohjelmassa olemme käsitelleet tätä menetelmää ja keskustelleet sen toiminnasta ja poikkeuksista.

Lue lisää Java-merkkijonomenetelmät

Java-merkkijono CompareTo() -menetelmä - UKK

Kuinka verrata merkkijonoja Javassa?

Voit verrata merkkijonoja Javassa vertaillaTo()-menetelmällä. Se hyväksyy kaksi parametria ja vertaa niitä leksikografisesti.

Mitä eroa on Java-vertailumenetelmän ja equals()-menetelmän välillä?

equals() -metodi vertaa() -menetelmää
Käytetään tarkistamaan, ovatko kaksi objektia täsmälleen samat. Käytetään kahden objektin vertaamiseen ja niiden suhteellisen järjestyksen määrittämiseen.

Palauttaa loogisen arvon:

  • tosi, jos objektit katsotaan yhtäläisiksi.
  • vääriä muuten.

Palauttaa kokonaisluvun:

  • Negatiivinen arvo, jos ensimmäistä objektia pidetään pienempänä kuin toista.
  • Nolla, jos objektit katsotaan yhtäläisiksi.
  • Positiivinen arvo, jos ensimmäistä objektia pidetään toisena suurempana.

Mitä vertailuTo () palauttaa Javassa?

Javassa vertaaTo()-menetelmä palauttaa kokonaisluvun. Sillä voi olla kolme mahdollista arvoa:

  • Negatiivinen arvo: Kun ensimmäistä kohdetta pidetään pienempänä kuin toista.
  • Nolla: Kun esineitä pidetään samanarvoisina.
  • Positiivinen arvo: Kun ensimmäistä kohdetta pidetään toisena suurempana.