Nizi v Javi so objekti, ki jih interno podpira le matrika, kar pomeni neprekinjeno dodeljevanje pomnilnika za znake. Upoštevajte, da so nizi v Javi nespremenljivi, kar pomeni, da ko ustvarimo objekt String in mu dodelimo nekaj vrednosti, ne moremo spremeniti vsebine. Lahko pa ustvarimo drug objekt String s spremembami, ki jih želimo.
Razred String v Javi vsebuje veliko metod za izvajanje različnih operacij na nizih in mi se bomo osredotočili na Java String primerjaj z () metoda v tem članku.
Metoda Java String.compareTo().
Java primerjaj z () metoda primerja dani niz s trenutnim nizom leksikografsko . Vrne pozitivno število, negativno število ali 0. Primerja nize na podlagi Vrednost Unicode vsakega znaka v nizih.
primer:
Java
int niz 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.'> );> > }> > }> }> |
>
>
Izhod:
Geeks and Geeks are lexicographically equal.>
Sintaksa
int comparison = str1.compareTo(str2);>
Parametri:
- str1: Niz 1 za primerjavo
- str2: Niz 2 za primerjavo
Vrne:
- če niz1> niz2 , se vrne pozitivno število
- če niz1
- če niz1 == niz2 , se vrne 0
Izjema: Vrže naslednji dve izjemi:
- NullPointerException- če je podani objekt Nič.
- ClassCastException- če trenutnega predmeta ni mogoče primerjati z navedenim objektom.
Različice metode CompareTo().
obstajajo tri variante od primerjaj z () metode, ki so naslednje:
- z uporabo int compareTo(Object obj)
- z uporabo int compareTo(String AnotherString)
- z uporabo int compareToIgnoreCase(String str)
1. int compareTo(Object obj)
Ta metoda primerja ta niz z drugim predmetom.
Sintaksa:
int compareTo(Object obj)>
Parametri:
obj: the Object to be compared.>
Povratna vrednost: Vrednost 0, če je argument niz, ki je leksikografsko enak temu nizu; vrednost manjša od 0, če je argument niz, ki je leksikografsko večji od tega niza; in vrednost, večjo od 0, če je argument niz, leksikografsko manjši od tega niza.
primer:
Spodaj je implementacija 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));> > }> }> |
razdelitev niza v c++
>
>Izhod
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6>
2. int compareTo(String anotherString)
Ta metoda leksikografsko primerja dva niza.
Sintaksa:
int compareTo(String anotherString)>
Parametri:
anotherString: the String to be compared.>
Povratna vrednost: Vrednost 0, če je argument niz, ki je leksikografsko enak temu nizu; vrednost manjša od 0, če je argument niz, ki je leksikografsko večji od tega niza; in vrednost, večjo od 0, če je argument niz, leksikografsko manjši od tega niza.
primer:
Spodaj je implementacija int compareTo(String anotherString):
python natisni na 2 decimalni mesti
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));> > }> }> |
>
>Izhod
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6>
3. int compareToIgnoreCase(String str)
Ta metoda leksikografsko primerja dva niza, pri čemer ne upošteva razlik med velikimi in malimi črkami.
Sintaksa:
int compareToIgnoreCase(String str)>
Parametri:
str: the String to be compared.>
Povratna vrednost: Ta metoda vrne negativno celo število, nič ali pozitivno celo število, ker je podani niz večji, enak ali manjši od tega niza, pri čemer zanemari upoštevanje velikih in malih črk.
primer:
Spodaj je implementacija 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));> > }> }> |
>
>Izhod
Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0>
Izjeme v metodi Java String compareTo().
metoda compareTo() v Javi lahko povzroči dve možni izjemi:
primarni ključ sestavljeni ključ
- NullPointerException
- ClassCastException
compareTo() NullPointerException
V Javi metoda compareTo() vrže izjemo NullPointerException, če je kateri od primerjanih predmetov nič . To zagotavlja, da izrecno obravnavate ničelne vrednosti, in preprečuje nepričakovano vedenje.
primer:
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);> }> }> |
>
>
Izhod:
Exception in thread 'main' java.lang.NullPointerException at cmp5.main(cmp5.java:11)>
compareTo() ClassCastException
To je izjema med izvajanjem in se zgodi, ko se v metodi compareTo() primerjata dva predmeta nezdružljivih vrst.
primer:
Java
niz dolžine
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);> > }> }> |
>
>
Izhod:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here>
Preberite tudi:
- Primerjajte dva niza v Javi
- Primerjajte dva niza leksikografsko v Javi
- Metoda Java Integer compareTo().
Zaključek
funkcija compareTo() v Javi se uporablja za leksikografsko primerjavo dveh nizov ali predmetov. Vrne pozitivno, ničelno ali negativno celo število. V tej vadnici smo obravnavali to metodo ter razpravljali o njenem delovanju in izjemah.
Preberi več Metode nizov Java
Metoda Java String CompareTo() - pogosta vprašanja
Kako primerjati nize v Javi?
Nize v Javi lahko primerjate z metodo compareTo(). Sprejema dva parametra in ju leksikografsko primerja.
Kakšna je razlika med metodo compareTo() in metodo equals() v Javi?
metoda equals(). metoda compareTo(). Uporablja se za preverjanje, ali sta dva predmeta popolnoma enaka. Uporablja se za primerjavo dveh predmetov in določanje njunega relativnega vrstnega reda. Vrne logično vrednost:
- res, če se objekti obravnavajo kot enaki.
- false drugače.
Vrne celo število:
- Negativna vrednost, če je prvi predmet manjši od drugega.
- Nič, če se objekti obravnavajo kot enaki.
- Pozitivna vrednost, če je prvi predmet večji od drugega.
Kaj vrne compareTo () v Javi?
metoda compareTo() v Javi vrne celo število. Lahko ima tri možne vrednosti:
- Negativna vrednost: Ko je prvi predmet manjši od drugega.
- nič: Ko se predmeti štejejo za enake.
- Pozitivna vrednost: Ko je prvi predmet večji od drugega.