В Java сравнение строк можно выполнить с использованием нескольких методов и операторов.
Рассмотрим несколько способов сравнения строк в Java.
equals()Этот метод сравнивает содержание двух строк. Если содержание двух строк одинаково, метод возвращает true, в противном случае - false.
String str1 = "Hello";
String str2 = "hello";
boolean result = str1.equals(str2); // false
В данном случае, str1.equals(str2) вернет false, потому что регистр символов различается.
equalsIgnoreCase()Этот метод также сравнивает содержание строк, но не учитывает регистр символов.
String str1 = "Hello";
String str2 = "hello";
boolean result = str1.equalsIgnoreCase(str2); // true
В этом случае, str1.equalsIgnoreCase(str2) вернет true, так как содержание строк идентично, несмотря на различия в регистре символов.
==Оператор == сравнивает ссылки на объекты. Если две переменные содержат ссылку на один и тот же объект (адрес памяти), оператор вернет true. Однако, если строки созданы с использованием разных операторов или методов, даже если они содержат одинаковые значения, оператор == вернет false.
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
Здесь str1 == str2 вернет true, потому что обе переменные ссылается на один и тот же литерал строки. Но str1 == str3 вернет false, так как str3 ссылается на новый объект, созданный с помощью ключевого слова new.
compareTo()Этот метод сравнивает две строки лексикографически.
Он возвращает целое число:
Пример:
String str1 = "apple";
String str2 = "banana";
int result = str1.compareTo(str2); // отрицательное число (-1)
Здесь str1.compareTo(str2) вернет отрицательное число (-1), так как лексикографически строка apple меньше строки banana.