logo

Метод Java String compareTo() із прикладами

Рядки в 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().

Є три варіанти з порівняти() метод, який є таким:

  1. використання int compareTo(Object obj)
  2. використання int compareTo(String AnotherString)
  3. використання 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>

Читайте також:

  1. Порівняйте два рядки в Java
  2. Порівняйте два рядки лексикографічно в Java
  3. Метод Java Integer compareTo().

Висновок

Функція compareTo() у Java використовується для лексикографічного порівняння двох рядків або об’єктів. Він повертає додатне, нульове або від’ємне ціле число. У цьому посібнику ми розглянули цей метод і обговорили його роботу та винятки.

Детальніше Рядкові методи Java

Метод Java String CompareTo() – поширені запитання

Як порівняти рядки в Java?

Ви можете порівнювати рядки в Java за допомогою методу compareTo(). Він приймає два параметри та порівнює їх лексикографічно.

Яка різниця між методом compareTo() і equals() у Java?

метод equals(). метод compareTo().
Використовується для перевірки того, чи два об’єкти абсолютно однакові. Використовується для порівняння двох об’єктів і визначення їх відносного порядку.

Повертає логічне значення:

  • true, якщо об’єкти вважаються рівними.
  • false інакше.

Повертає ціле число:

  • Від’ємне значення, якщо перший об’єкт вважається меншим за другий.
  • Нуль, якщо об’єкти вважаються рівними.
  • Додатне значення, якщо перший об’єкт вважається більшим за другий.

Що повертає compareTo() у Java?

метод compareTo() у Java повертає ціле число. Він може мати три можливі значення:

  • Від'ємне значення: Коли перший об'єкт вважається меншим за другий.
  • Нуль: Коли об'єкти вважаються рівноправними.
  • Позитивне значення: Коли перший об'єкт вважається більшим за другий.