logo

Порівняйте два рядки в Java

Рядок — це послідовність символів. У Java об’єкти String незмінні, що означає, що вони постійні та не можуть бути змінені після створення.

паліндром в java

Методи порівняння рядків у Java

Нижче наведено 5 способів порівняти два рядки на Java:



  1. Використання функції, визначеної користувачем
  2. Використання String.equals()
  3. Використання String.equalsIgnoreCase()
  4. Використання Objects.equals()
  5. Використання String.compareTo()

1. Використання функції, визначеної користувачем:

Визначте функцію для порівняння значень із такими умовами:

  1. якщо (рядок1> рядок2) повертає a позитивне значення .
  2. якщо обидва рядки рівні лексикографічно, тобто (рядок1 == рядок2), повертається 0 .
  3. якщо (рядок1 від'ємне значення .

2. Використання String.equals() :

У Java метод string equals() порівнює два дані рядки на основі даних/вмісту рядка. Якщо весь вміст обох рядків однаковий, повертається true. Якщо якийсь символ не збігається, повертається false.

Синтаксис:



str1.equals(str2);>

Тут str1 і str2 є рядками, які потрібно порівняти.

приклади:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   geeks   Input 2:   Geeks   Output:   false>

програма:



Java
// Java program to Compare two strings // lexicographically public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Practice');  String string3 = new String('Geeks');  String string4 = new String('Geeks');  String string5 = new String('geeks');  // Comparing for String 1 != String 2  System.out.println('Comparing ' + string1 + ' and '  + string2 + ' : '  + string1.equals(string2));  // Comparing for String 3 = String 4  System.out.println('Comparing ' + string3 + ' and '  + string4 + ' : '  + string3.equals(string4));  // Comparing for String 4 != String 5  System.out.println('Comparing ' + string4 + ' and '  + string5 + ' : '  + string4.equals(string5));  // Comparing for String 1 != String 4  System.out.println('Comparing ' + string1 + ' and '  + string4 + ' : '  + string1.equals(string4));  } }>

Вихід
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>

3. Використання String.equalsIgnoreCase() :

The String.equalsIgnoreCase() метод порівнює два рядки незалежно від регістру (нижнього чи верхнього) рядка. Цей метод повертає true, якщо аргумент не є нульовим і вміст обох рядків є однаковим, ігноруючи регістр, інакше – false. Синтаксис:

str2.equalsIgnoreCase(str1);>

Тут str1 і str2 є рядками, які потрібно порівняти.

приклади:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   geeks   Input 2:   Geeks   Output:   true>

програма:

Java
// Java program to Compare two strings // lexicographically public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Practice');  String string3 = new String('Geeks');  String string4 = new String('Geeks');  String string5 = new String('geeks');  // Comparing for String 1 != String 2  System.out.println(  'Comparing ' + string1 + ' and ' + string2  + ' : ' + string1.equalsIgnoreCase(string2));  // Comparing for String 3 = String 4  System.out.println(  'Comparing ' + string3 + ' and ' + string4  + ' : ' + string3.equalsIgnoreCase(string4));  // Comparing for String 4 = String 5  System.out.println(  'Comparing ' + string4 + ' and ' + string5  + ' : ' + string4.equalsIgnoreCase(string5));  // Comparing for String 1 != String 4  System.out.println(  'Comparing ' + string1 + ' and ' + string4  + ' : ' + string1.equalsIgnoreCase(string4));  } }>

Вихід
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>

4. Використання Objects.equals() :

Object.equals(Об’єкт a, Object b) метод повертає true, якщо аргументи рівні один одному, і false в іншому випадку. Отже, якщо обидва аргументи нульові, повертається true, а якщо точно один аргумент нульовий, повертається false. В іншому випадку рівність визначається за допомогою методу equals() першого аргументу. Синтаксис:

public static boolean equals(Object a, Object b)>

Тут a і b є рядковими об’єктами, які потрібно порівняти.

приклади:

  Input 1:   techcodeview.com   Input 2:   Practice   Output:   false   Input 1:   Geeks   Input 2:   Geeks   Output:   true   Input 1:   null   Input 2:   null   Output:   true>

програма:

Java
// Java program to Compare two strings // lexicographically import java.util.*; public class GFG {  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Geeks');  String string3 = new String('Geeks');  String string4 = null;  String string5 = null;  // Comparing for String 1 != String 2  System.out.println(  'Comparing ' + string1 + ' and ' + string2  + ' : ' + Objects.equals(string1, string2));  // Comparing for String 2 = String 3  System.out.println(  'Comparing ' + string2 + ' and ' + string3  + ' : ' + Objects.equals(string2, string3));  // Comparing for String 1 != String 4  System.out.println(  'Comparing ' + string1 + ' and ' + string4  + ' : ' + Objects.equals(string1, string4));  // Comparing for String 4 = String 5  System.out.println(  'Comparing ' + string4 + ' and ' + string5  + ' : ' + Objects.equals(string4, string5));  } }>

Вихід
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>

5. Використання String.compareTo() для порівняння двох рядків

Синтаксис String compareTo()

int str1.compareTo(String str2)>

Працює: Він порівнює та повертає наступні значення:

  1. якщо (рядок1> рядок2) повертає a позитивне значення .
  2. якщо обидва рядки рівні лексикографічно, тобто (рядок1 == рядок2), повертається 0 .
  3. якщо (рядок1 від'ємне значення .

Нижче наведено реалізацію вищеописаного методу

Java
// Java program to Compare two strings // Using String.compareTo()  import java.util.*; // Diver Class public class GFG {  public static void check(String string1, String string2)  {  if (string1.compareTo(string2)!=0) {  System.out.println(string1 + ' ' + string2  + ' : Not Equal');  }  else {  System.out.println(string1 + ' ' + string2  + ' : Equal');  }  }  // main function  public static void main(String args[])  {  String string1 = new String('Geeksforgeeks');  String string2 = new String('Geeks');  String string3 = new String('Geeks');  String string4 = ' ';  String string5 = ' ';  // Comparing for String 1 != String 2  check(string1, string2);  // Comparing for String 2 = String 3  check(string2, string3);  // Comparing for String 1 != String 4  check(string1, string4);  // Comparing for String 4 = String 5  check(string4, string5);  } }>

Вихід
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>

Примітка: Рядок NULL не можна передати як аргумент методу compareTo().

Щоб дізнатися більше про тему, зверніться до String.compareTo() стаття.

Чому б не використовувати == для порівняння рядків?

Загалом, обидва дорівнює() і == Оператори в Java використовуються для порівняння об’єктів для перевірки рівності, але ось деякі відмінності між ними:

  1. Основна відмінність між методом .equals() і оператором == полягає в тому, що один є методом, а інший є оператором.
  2. Для порівняння посилань можна використовувати оператори == (порівняння адрес) і метод .equals() для порівняння змісту .
    • І s1, і s2 стосуються різних об’єктів.
    • Коли для порівняння s1 і s2 використовується оператор ==, результат є хибним, оскільки обидва мають різні адреси в пам’яті.
    • Використовуючи дорівнює, результат є істинним, оскільки він лише порівнює значення, наведені в s1 і s2.

Щоб дізнатися більше про тему, зверніться до порівняння рядків стаття.