Reťazce v jazyku Java sú objekty, ktoré sú interne podporované iba poľom, čo znamená súvislú alokáciu pamäte pre znaky. Upozorňujeme, že reťazce sú v jazyku Java nemenné, čo znamená, že keď vytvoríme objekt String a priradíme mu nejaké hodnoty, nemôžeme zmeniť obsah. Môžeme však vytvoriť ďalší objekt typu String s úpravami, ktoré chceme.
Trieda String v jazyku Java obsahuje množstvo metód na vykonávanie rôznych operácií s reťazcami a my sa zameriame na reťazec Java porovnať s() metóda v tomto článku.
Metóda Java String.compareTo().
Java porovnať s() metóda porovnáva daný reťazec s aktuálnym reťazcom lexikograficky . Vráti kladné číslo, záporné číslo alebo 0. Porovnáva reťazce na základe Hodnota Unicode každého znaku v reťazcoch.
Príklad:
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.'> );> > }> > }> }> |
>
>
Výkon:
Geeks and Geeks are lexicographically equal.>
Syntax
int comparison = str1.compareTo(str2);>
Parametre:
- str1: Reťazec 1 na porovnanie
- str2: Reťazec 2 na porovnanie
Vrátenie:
- ak reťazec1> reťazec2 , vráti sa pozitívne číslo
- ak reťazec1
- ak reťazec1 == reťazec2 , vráti sa 0
Výnimka: Vyvoláva nasledujúce dve výnimky:
- NullPointerException- ak je zadaný objekt Null.
- ClassCastException- ak aktuálny objekt nemožno porovnať so špecifikovaným objektom.
Varianty metódy CompareTo().
Existujú tri varianty z porovnať s() metódy, ktoré sú nasledovné:
- pomocou int CompareTo(Object obj)
- pomocou int CompareTo(String AnotherString)
- pomocou int CompareToIgnoreCase(String str)
1. int CompareTo(Object obj)
Táto metóda porovnáva tento reťazec s iným objektom.
Syntax:
int compareTo(Object obj)>
Parametre:
obj: the Object to be compared.>
Návratová hodnota: Hodnota 0, ak je argument reťazec lexikograficky rovný tomuto reťazcu; hodnotu menšiu ako 0, ak je argumentom reťazec lexikograficky väčší ako tento reťazec; a hodnotu väčšiu ako 0, ak je argumentom reťazec lexikograficky menší ako tento reťazec.
Príklad:
Nižšie je uvedená implementácia 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));> > }> }> |
>
>Výkon
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6>
2. int porovnanie s (reťazec iný reťazec)
Táto metóda lexikograficky porovnáva dva reťazce.
Syntax:
int compareTo(String anotherString)>
Parametre:
anotherString: the String to be compared.>
Návratová hodnota: Hodnota 0, ak je argument reťazec lexikograficky rovný tomuto reťazcu; hodnotu menšiu ako 0, ak je argumentom reťazec lexikograficky väčší ako tento reťazec; a hodnotu väčšiu ako 0, ak je argumentom reťazec lexikograficky menší ako tento reťazec.
Príklad:
Nižšie je uvedená implementácia int CompareTo (String otherString):
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));> > }> }> |
>
>Výkon
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6>
3. int CompareToIgnoreCase(String str)
Táto metóda lexikograficky porovnáva dva reťazce, pričom ignoruje rozdiely v malých a veľkých písmenách.
Syntax:
int compareToIgnoreCase(String str)>
Parametre:
str: the String to be compared.>
Návratová hodnota: Táto metóda vráti záporné celé číslo, nulu alebo kladné celé číslo, pretože zadaný reťazec je väčší, rovný alebo menší ako tento reťazec, pričom sa ignorujú veľké a malé písmená.
Príklad:
Nižšie je implementácia int CompareToIgnoreCase(String str):
Java
hashmap v jave
// 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));> > }> }> |
>
>Výkon
Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0>
Výnimky v metóde Java String CompareTo().
Metóda CompareTo() v jazyku Java môže vyvolať dve možné výnimky:
- Výnimka NullPointerException
- ClassCastException
CompareTo() NullPointerException
V jazyku Java metóda CompareTo() vyvoláva výnimku NullPointerException, ak je ním niektorý z porovnávaných objektov nulový . Tým sa zaistí, že budete explicitne spracovávať hodnoty null a zabráni sa neočakávanému správaniu.
Príklad:
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);> }> }> |
>
>
Výkon:
Exception in thread 'main' java.lang.NullPointerException at cmp5.main(cmp5.java:11)>
CompareTo() ClassCastException
Je to výnimka za behu a vyskytuje sa, keď sa dva objekty nekompatibilných typov porovnávajú v metóde CompareTo().
Príklad:
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);> > }> }> |
>
>
Výkon:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here>
Prečítajte si tiež:
- Porovnajte dva reťazce v jazyku Java
- Porovnajte dva reťazce lexikograficky v Jave
- Metóda Java Integer CompareTo().
Záver
Funkcia CompareTo() v Jave sa používa na lexikografické porovnanie dvoch reťazcov alebo objektov. Vráti kladné, nulové alebo záporné celé číslo. V tomto návode sme sa zaoberali touto metódou a diskutovali o jej fungovaní a výnimkách.
Čítaj viac Java String Methods
Metóda Java String CompareTo() – najčastejšie otázky
Ako porovnať reťazce v Jave?
Reťazce v jazyku Java môžete porovnávať pomocou metódy CompareTo(). Prijíma dva parametre a lexikograficky ich porovnáva.
Aký je rozdiel medzi metódou CompareTo() a metódou equals() v jazyku Java?
metóda equals(). metóda porovnať() Používa sa na kontrolu, či sú dva objekty úplne rovnaké. Používa sa na porovnanie dvoch objektov a určenie ich relatívneho poradia. Vráti boolovskú hodnotu:
- pravda, ak sa objekty považujú za rovnaké.
- inak falošné.
Vráti celé číslo:
- Záporná hodnota, ak sa prvý objekt považuje za menší ako druhý.
- Nula, ak sa objekty považujú za rovnaké.
- Kladná hodnota, ak sa prvý objekt považuje za väčší ako druhý.
Čo vracia CompareTo () v Jave?
Metóda CompareTo() v jazyku Java vracia celé číslo. Môže mať tri možné hodnoty:
- Záporná hodnota: Keď je prvý objekt považovaný za menší ako druhý.
- nula: Keď sa objekty považujú za rovnaké.
- Pozitívna hodnota: Keď sa prvý objekt považuje za väčší ako druhý.