logo

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>>>) {> >System.out.println(str1 +>' comes after '> + 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:

java ohjelmat
  • 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.

perintö javassa

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

linux käyttöjärjestelmä




// 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


kuinka päivitän javan



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




java switch -lause

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.