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
- 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:
- käyttämällä int vertaa(Object obj)
- käyttämällä int vertaaTo(String AnotherString)
- 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:
- Vertaa kahta merkkijonoa Javassa
- Vertaa kahta merkkijonoa leksikografisesti Javassa
- 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.