В Java есть два способа сравнения строк:
- Оператор == сравнивает ссылки объектов, а не значения. Таким образом, оператор == возвращает true только если обе переменные ссылаться на один и тот же объект.
- Метод equals() сравнивает значения объектов, а не ссылки. Метод equals() сравнивает символьную последовательность, содержащуюся в двух строках, игнорируя регистр.
Пример использования операторов сравнения и метода equals() в Java:
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
// использование оператора сравнения
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
// использование метода equals()
System.out.println(str1.equals(str2)); // true
System.out.println(str1.equals(str3)); // true
- статический метод compare() класса String, который используется для лексикографического сравнения двух строк. Этот метод возвращает значение 0, если строки равны; значение меньше нуля, если первая строка меньше второй, и значение больше нуля, если первая строка больше второй.
Пример:
String str1 = "apple";
String str2 = "orange";
int result = str1.compareTo(str2);
if (result < 0) {
System.out.println("str1 меньше, чем str2");
} else if (result > 0) {
System.out.println("str1 больше, чем str2");
} else {
System.out.println("str1 и str2 равны");
}
Этот пример выведет на экран "str1 меньше, чем str2", потому что строки сравниваются лексикографически и "apple" идет перед "orange" в алфавитном порядке.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov