logo

Java String Method CompareTo() s príkladmi

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 , vráti sa negatívne číslo
  • 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é:

  1. pomocou int CompareTo(Object obj)
  2. pomocou int CompareTo(String AnotherString)
  3. 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ž:

  1. Porovnajte dva reťazce v jazyku Java
  2. Porovnajte dva reťazce lexikograficky v Jave
  3. 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ý.