Статья

Как сравнивать строки в Java?

Строки в Java неизменяемы. Это означает, что всякий раз, когда вы пытаетесь изменить строку, вы получаете новый экземпляр класса String. Вы не можете изменить исходную строку. Это было сделано для того, чтобы экземпляры строк можно было кэшировать. Типичная программа содержит много ссылок на строки, и кэширование этих экземпляров может уменьшить объем памяти и повысить производительность программы.
При использовании оператора == для сравнения строк вы не сравниваете содержимое строки, а фактически сравниваете адреса памяти. Если они равны, то будет возвращено значение true иначе false.
Как же сравнить строки с учетом их содержимого в Java?

Метод equals() в экземпляре класса String

Метод equals() сравнивает содержимое двух строк с учетом регистра символов.
String a = new String("Java");
String b = new String("Java");
System.out.println(a == b); 
// напечатает false

System.out.println(a.equals(b)); 
// напечатает true

Метод equalsIgnoreCase() в экземпляре класса String

Если вы хотите сравнить строки без учета регистра, то нужно использовать метод equalsIgnoreCase класса String
String a = new String("JAVA");
String b = new String("java");
System.out.println(a.equals(b)); 
// напечатает false

System.out.println(a.equalsIgnoreCase(b)); 
// напечатает true

Статический метод Objects.equals()

Вызов статического метода Object.equals() возвращает значение true, если аргументы равны друг другу, и значение false в противном случае. Следовательно, если оба аргумента равны null, возвращается true, а если ровно один аргумент равен null, возвращается false. В противном случае равенство определяется с помощью метода equals первого аргумента.
java