String.equals()
Сравнивает содержимое двух строк.
Доступно с: Java 1.0
Синтаксис
public boolean equals(Object anObject)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| anObject | Object | С чем сравнивать. Для true это должна быть строка с теми же символами. |
Возвращаемое значение
booleantrue, если строки состоят из одинаковых символов.
Примеры
equals() сравнивает содержимое, а == — ссылки на объекты:
void main() {
String a = "java";
String b = new String("java");
IO.println(a.equals(b));
IO.println(a == b);
}Результат:
true
falseСравнение со строкой, которая может быть null — литерал слева:
void main() {
String answer = null;
IO.println("yes".equals(answer));
}Результат:
falseПримечания
Строки всегда сравнивайте через equals(). Оператор == иногда «работает» для литералов, потому что одинаковые литералы — один объект, но для строк, прочитанных из ввода или собранных в программе, он даёт false.
Вызов answer.equals("yes") при answer == null бросит NullPointerException. Варианты без этой проблемы: "yes".equals(answer) или Objects.equals(answer, "yes").
См. также
- String.equalsIgnoreCase() — Сравнивает две строки без учёта регистра букв.
- String.compareTo() — Сравнивает две строки по алфавиту (лексикографически).
- == vs equals() — == сравнивает значения примитивов и ссылки объектов; содержимое объектов сравнивает equals().
- Objects.equals() — Сравнивает два объекта через equals(), безопасно для null.
Вопросы и ответы по теме
В учебнике
- Строки — Тип String в Java: создание строк, склейка через +, длина, символы по индексу, экранирование и сравнение через equals.