Metoda Java String CompareTo() s příklady
Řetězce v Javě jsou objekty, které jsou interně podporovány pouze polem, což znamená souvislou alokaci paměti pro znaky. Upozorňujeme, že řetězce jsou v Javě neměnné, což znamená, že jakmile vytvoříme objekt String a přiřadíme mu nějaké hodnoty, nemůžeme změnit obsah. Můžeme však vytvořit další objekt String s požadovanými úpravami.
Třída String v Javě obsahuje mnoho metod pro provádění různých operací s řetězci a my se zaměříme na Java String porovnat s() metoda v tomto článku.
Metoda Java String.compareTo().
Java porovnat s() metoda porovná daný řetězec s aktuálním řetězcem lexikograficky . Vrací kladné číslo, záporné číslo nebo 0. Porovnává řetězce na základě Hodnota Unicode každého znaku v řetězcích.
Příklad:
Jáva
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ýstup:
Geeks and Geeks are lexicographically equal.
Syntax
int comparison = str1.compareTo(str2);
Parametry:
- str1: Řetězec 1 pro srovnání
- str2: Řetězec 2 pro srovnání
Vrácení:
- -li řetězec1> řetězec2 , vrací se pozitivní číslo
- -li řetězec1
, vrací se negativní číslo - -li řetězec1 == řetězec2 , vrací se 0
Výjimka: Vyvolá následující dvě výjimky:
- NullPointerException- pokud je zadaný objekt Null.
- ClassCastException- pokud aktuální objekt nelze porovnat se zadaným objektem.
Varianty metody CompareTo().
Existují tři varianty z porovnat s() metody, které jsou následující:
- pomocí int CompareTo(Object obj)
- pomocí int CompareTo(String AnotherString)
- pomocí int CompareToIgnoreCase(String str)
1. int CompareTo(Object obj)
Tato metoda porovnává tento řetězec s jiným objektem.
Syntax:
int compareTo(Object obj)
Parametry:
obj: the Object to be compared.
Návratová hodnota: Hodnota 0, pokud je argumentem řetězec lexikograficky rovný tomuto řetězci; hodnotu menší než 0, pokud je argumentem řetězec lexikograficky větší než tento řetězec; a hodnotu větší než 0, pokud je argumentem řetězec lexikograficky menší než tento řetězec.
Příklad:
Níže je implementace int CompareTo (Object obj):
Jáva
// 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ýstup
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6
2. int CompareTo(String otherString)
Tato metoda porovnává dva řetězce lexikograficky.
Syntax:
int compareTo(String anotherString)
Parametry:
anotherString: the String to be compared.
Návratová hodnota: Hodnota 0, pokud je argumentem řetězec lexikograficky rovný tomuto řetězci; hodnotu menší než 0, pokud je argumentem řetězec lexikograficky větší než tento řetězec; a hodnotu větší než 0, pokud je argumentem řetězec lexikograficky menší než tento řetězec.
Příklad:
Níže je implementace int CompareTo(String otherString):
Jáva
// 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ýstup
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6
3. int CompareToIgnoreCase(String str)
Tato metoda porovnává dva řetězce lexikograficky, přičemž ignoruje rozdíly v malých a velkých písmenech.
Syntax:
int compareToIgnoreCase(String str)
Parametry:
str: the String to be compared.
Návratová hodnota: Tato metoda vrací záporné celé číslo, nulu nebo kladné celé číslo, protože zadaný řetězec je větší, roven nebo menší než tento řetězec, přičemž se neberou ohledy na velká a malá písmena.
Příklad:
Níže je implementace int CompareToIgnoreCase(String str):
Jáva
// 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ýstup
Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0
Výjimky v metodě Java String CompareTo().
Metoda CompareTo() v Javě může vyvolat dvě možné výjimky:
- Výjimka NullPointerException
- ClassCastException
CompareTo() NullPointerException
V Javě metoda CompareTo() vyvolá výjimku NullPointerException, pokud je některý z porovnávaných objektů nula . Tím zajistíte, že budete explicitně zpracovávat hodnoty null, a zabráníte neočekávanému chování.
Příklad:
Jáva
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ýstup:
Exception in thread 'main' java.lang.NullPointerException at cmp5.main(cmp5.java:11)
CompareTo() ClassCastException
Je to výjimka za běhu a dochází k ní, když jsou v metodě CompareTo() porovnány dva objekty nekompatibilních typů.
Příklad:
Jáva
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ýstup:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here
Přečtěte si také:
- Porovnejte dva řetězce v Javě
- Porovnejte dva řetězce lexikograficky v Javě
- Metoda Java Integer CompareTo().
Závěr
Funkce CompareTo() v Javě se používá k lexikografickému porovnání dvou řetězců nebo objektů. Vrací kladné, nulové nebo záporné celé číslo. V tomto tutoriálu jsme tuto metodu probrali a probrali její fungování a výjimky.
Přečtěte si více Java String Methods
Metoda Java String CompareTo() – nejčastější dotazy
Jak porovnat řetězce v Javě?
Řetězce v Javě můžete porovnávat pomocí metody CompareTo(). Přijímá dva parametry a lexikograficky je porovnává.
Jaký je rozdíl mezi metodou CompareTo() a metodou equals() v Javě?
metoda equals(). metoda CompareTo(). Používá se ke kontrole, zda jsou dva objekty přesně stejné. Slouží k porovnání dvou objektů a určení jejich vzájemného pořadí. Vrátí boolean:
- true, pokud jsou objekty považovány za stejné.
- jinak nepravda.
Vrátí celé číslo:
- Záporná hodnota, pokud je první objekt považován za menší než druhý.
- Nula, pokud jsou objekty považovány za stejné.
- Kladná hodnota, pokud je první objekt považován za větší než druhý.
Co vrací CompareTo () v Javě?
Metoda CompareTo() v Javě vrací celé číslo. Může mít tři možné hodnoty:
- Záporná hodnota: Když je první objekt považován za menší než druhý.
- Nula: Když jsou objekty považovány za rovnocenné.
- Kladná hodnota: Když je první objekt považován za větší než druhý.