Рядки в Java — це об'єкти, які внутрішньо підтримуються лише масивом, що означає безперервний розподіл пам'яті для символів. Зауважте, що рядки незмінні в Java, що означає, що коли ми створюємо об’єкт String і призначаємо йому деякі значення, ми не можемо змінити вміст. Однак ми можемо створити інший об’єкт String із змінами, які нам потрібні.
Клас String у Java містить багато методів для виконання різних операцій над рядками, і ми зосередимося на Java String порівняти() метод у цій статті.
Метод Java String.compareTo().
Ява порівняти() метод порівнює даний рядок із поточним рядком лексикографічно . Він повертає додатне число, від’ємне число або 0. Він порівнює рядки на основі Значення Unicode кожного символу в рядках.
приклад:
Java
fcfs
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.'>);> >}> >}> }> |
>
>
Вихід:
Geeks and Geeks are lexicographically equal.>
Синтаксис
int comparison = str1.compareTo(str2);>
Параметри:
- str1: Рядок 1 для порівняння
- str2: Рядок 2 для порівняння
Повернення:
- якщо рядок1> рядок2 , він повертається позитивний номер
- якщо рядок1
, він повертається негативний номер - якщо рядок1 == рядок2 , він повертається 0
Виняток: Він створює наступні два винятки:
- NullPointerException- якщо вказаний об’єкт має значення Null.
- ClassCastException- якщо поточний об’єкт не можна порівняти з вказаним об’єктом.
Варіанти методу CompareTo().
Є три варіанти з порівняти() метод, який є таким:
- використання int compareTo(Object obj)
- використання int compareTo(String AnotherString)
- використання int compareToIgnoreCase(String str)
1. int compareTo(Object obj)
Цей метод порівнює цей рядок з іншим об’єктом.
Синтаксис:
int compareTo(Object obj)>
Параметри:
obj: the Object to be compared.>
Повернене значення: Значення 0, якщо аргумент є рядком, лексикографічно рівним цьому рядку; значення менше 0, якщо аргумент є рядком, лексикографічно більшим за цей рядок; і значення більше 0, якщо аргумент є рядком, лексикографічно меншим за цей рядок.
приклад:
Нижче наведено реалізацію 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));> >}> }> |
>
>Вихід
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6>
2. int compareTo(String anotherString)
Цей метод лексикографічно порівнює два рядки.
Синтаксис:
int compareTo(String anotherString)>
Параметри:
anotherString: the String to be compared.>
Повернене значення: Значення 0, якщо аргумент є рядком, лексикографічно рівним цьому рядку; значення менше 0, якщо аргумент є рядком, лексикографічно більшим за цей рядок; і значення більше 0, якщо аргумент є рядком, лексикографічно меншим за цей рядок.
приклад:
Нижче наведено реалізацію int compareTo(String anotherString):
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));> >}> }> |
>
>Вихід
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6>
3. int compareToIgnoreCase(String str)
Цей метод порівнює два рядки лексикографічно, ігноруючи відмінності регістру.
Синтаксис:
int compareToIgnoreCase(String str)>
Параметри:
str: the String to be compared.>
Повернене значення: Цей метод повертає від’ємне ціле число, нуль або позитивне ціле число, оскільки вказаний рядок більше, дорівнює або менше цього рядка, ігноруючи регістр.
приклад:
Нижче наведено реалізацію 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));> >}> }> |
>
>Вихід
Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0>
Винятки в методі Java String compareTo().
Метод compareTo() у Java може викликати два можливі винятки:
- NullPointerException
- ClassCastException
compareTo() NullPointerException
У Java метод compareTo() створює виняток NullPointerException, якщо будь-який з порівнюваних об’єктів є нуль . Це гарантує, що ви явно обробляєте нульові значення, і запобігає неочікуваній поведінці.
приклад:
Java
concat рядки 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);> }> }> |
>
>
Вихід:
Exception in thread 'main' java.lang.NullPointerException at cmp5.main(cmp5.java:11)>
compareTo() ClassCastException
Це виняток під час виконання і виникає, коли два об’єкти несумісних типів порівнюються в методі compareTo().
приклад:
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);> >}> }> |
>
>
Вихід:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here>
Читайте також:
- Порівняйте два рядки в Java
- Порівняйте два рядки лексикографічно в Java
- Метод Java Integer compareTo().
Висновок
Функція compareTo() у Java використовується для лексикографічного порівняння двох рядків або об’єктів. Він повертає додатне, нульове або від’ємне ціле число. У цьому посібнику ми розглянули цей метод і обговорили його роботу та винятки.
Детальніше Рядкові методи Java
Метод Java String CompareTo() – поширені запитання
Як порівняти рядки в Java?
Ви можете порівнювати рядки в Java за допомогою методу compareTo(). Він приймає два параметри та порівнює їх лексикографічно.
Яка різниця між методом compareTo() і equals() у Java?
метод equals(). метод compareTo(). Використовується для перевірки того, чи два об’єкти абсолютно однакові. Використовується для порівняння двох об’єктів і визначення їх відносного порядку. Повертає логічне значення:
- true, якщо об’єкти вважаються рівними.
- false інакше.
Повертає ціле число:
- Від’ємне значення, якщо перший об’єкт вважається меншим за другий.
- Нуль, якщо об’єкти вважаються рівними.
- Додатне значення, якщо перший об’єкт вважається більшим за другий.
Що повертає compareTo() у Java?
метод compareTo() у Java повертає ціле число. Він може мати три можливі значення:
- Від'ємне значення: Коли перший об'єкт вважається меншим за другий.
- Нуль: Коли об'єкти вважаються рівноправними.
- Позитивне значення: Коли перший об'єкт вважається більшим за другий.