Ř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
pete davidson
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):
java matematika náhodná
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
seznam seřazený 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ý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);> >}> }> |
css přechod opacity
>
>
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ý.