Як порівнювати рядки в Java (з ілюстраціями)

Клас String включає кілька методів, за допомогою яких можна порівняти повні рядки і частини рядків. Деякі методи повертають цілочисельні значення, а інші-логічні значення. У цій статті наводяться способи порівняння двох різних рядків, використовуючи різні методи класу String.

Кроки

  1. Створіть два об'єкти класу String.найпростіший спосіб оголосити два рядки в Java-це використовувати наступний код. String оголошує тип об'єкта. string1 і string2-це Імена рядків. Слова "Привіт" і "батько" є значеннями рядкових об'єктів. Всякий раз, коли компілятор виявляє значення, укладене в лапки, він автоматично створює рядок.
      String String1 = "Привіт";
      String String2 = "батько";
      
  2. Використовуйте логічний метод startsWith (String prefix), щоб порівняти початок рядка. цей метод класу String порівнює початок рядка з вказаним префіксом (prefix). Це логічний метод, тому він повертає лише два значення: true (істина) або false (брехня). Використовуйте наступний код і одну зі створених рядків. Представлений код поверне обидва значення (true і false) і виведе результати на екран. Спочатку повернеться значення true, а потім значення false.
      System.Out.Println(String1.StartsWith(" пр ")); / / повертає true і виводить true
      System.Out.Println(String1.StartsWith(" ма ")); / / повертає false і виводить false
      
  3. Використовуйте логічний метод startsWith (String prefix, int offset). цей метод класу String перевіряє, чи входить вказаний префікс (prefix) в рядок, починаючи з заданого індексу (offset). Даний метод ігнорує букви, які знаходяться до заданого індексу. Представлений код поверне обидва значення (true і false). Зверніть увагу, що підрахунок букв в рядку починається з 0. Наприклад, в слові "Привіт «буква» п « – Це 0, буква» р" – це 1.
      System.Out.Println(String1.StartsWith("ве", 3)); //повертає true і виводить true
      System.Out.Println(String1.StartsWith("ве", 1)); //повертає false і виводить false
      
  4. Використовуйте логічний метод endsWith (String prefix), щоб порівняти кінець рядка. цей метод класу String порівнює кінець рядка з вказаним префіксом (prefix). При цьому метод шукає вказаний префікс (на основі його довжини), починаючи з кінця рядка. Представлений код поверне обидва значення (true і false) і виведе результати на екран.
      System.Out.Print(String2.EndsWith("єц")); / / повертає true і виводить true
      System.Out.Print(String1.EndsWith(" пр ")); / / повертає false і виводить false
      
  5. Використовуйте чисельний метод compareTo (String anotherString), щоб порівняти два рядки.порівняйте два рядки за допомогою string1.compareTo (String2) або string2.compareTo(string1). Так як це чисельний метод, повернеться ціле число. Якщо рядки ідентичні (повністю збігаються), повернеться 0; в іншому випадку повернеться число, відмінне від 0. Наступний код продемонструє порівняння ідентичних і неідентичних рядків, а також виведе результати на екран.
      String String1 = "Привіт";
      String String2 = "Привіт";
      String String3 = "батько";
      System.Out.Println(String1. CompareTo(String2)); / / виведе 0, так як рядки ідентичні
      System.Out.Println(String1.CompareTo(String3); / / виведе ціле число, відмінне від нуля
      

Поради

  • Наступний код можна використовувати в умовному операторі, щоб вивести повідомлення про помилку, якщо рядки не збігаються:
    If (MyString1.CompareTo(MyString2) != 0)
    {	
    System.Out.Println(" помилка! Рядки " + MyString1 + " і " + MyString2 + "не збігаються");
    }
    
  • Щоб просто порівняти два рядки, простіше скористатися методом .equals():
    String MyString1 = New String("abc");
    String MyString2 = New String("abc");
    If(MyString1.Equals(MyString2))
    {
    System.Out. Println("рядки збігаються");
    }
    
    • Примітка: У цій ситуації метод (myString1 == myString2) поверне значення false (брехня). Навіть якщо рядки " abc " ідентичні, myString1 і myString2 є двома різними об'єктами класу String. Оператор "» = " порівнює об'єкти, а метод .equals() порівнює значення рядків.

Попередження

  • Не порівнюйте рядки, використовуючи оператор "= = " (якщо не знаєте, що робите). Цей оператор може повернути невірне значення, що збільшить час налагодження коду, особливо якщо ви початківець програміст.
  • Порівняння двох нульові рядків за допомогою оператора "= = " поверне значення true( істина), а порівняння тих же рядків методом.equals() викличе виняток.

Ще почитати: