В 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
.