4.4. Порівняння рядків

Для того, щоб порівняти два рядки на рівність можна скористатися методом equals().Метод повертає true, якщо str1 та str2 рівні, інакше false. Можна також, замість змінних str1, str2 застосовувати рядкові константи. Наприклад:

1
2
str1.equals(str2); 
«Hello».equals(greeting);

Згаданий метод порівнює рядки з врахування регістру символів. Для того, щоб не враховувався регістр при порівнянні існує метод equalsIgnoreCase().

1
2
// порівняння без урахування регістру 
"Hello".equalsIgnoreCase("hello")

Не використовуйте оператор ==, щоб перевірити рядки на рівність. Таким чином лише перевіряється, чи рядки розташовуються за одним місцем в пам’яті, крім того, результат може бути неоднозначним.

1
2
3
4
5
6
String str1="Hello"; 
String str2="Hello"; 
if (str1==str2) 
System.out.println("рівні"); 
else System.out.println("не рівні"); 
//скоріше всього на екрані отримаємо напис «рівні».

Неоднозначність результату пов’язана з тим, що константні рядки в java можуть специфічним чином розподілятися (share) в пам'яті для спільного використання змінними. Хоча може бути, що існуватиме багато копій однакових рядків.