Как правильно сравнить две строки в java?

Пользователь

от hoyt.jerde , в категории: Java , 3 года назад

Как правильно сравнить две строки в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jerad.kuphal , 3 года назад

@hoyt.jerde На самом деле сравнить две строки в Java можно несколькими способами и один из них использовать == и другой вариант вызвать метод .equals() на строке. Есть особенности у каждого из варинтов и если Вам нужно сравнить самое значение строки, то вероятно .equals() подойдет Вам больше, а если сами объекты строк, то ==. Посмотрите ниже пример как работают оба из вариантов:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
String string1 = "Тест";
String string2 = "Тест";

// TRUE
if (string1 == string1) {
    System.out.println("Одинаковые строки");
}

// TRUE
if (string1.equals(string2)) {
    System.out.println("Одинаковые строки");
}

String stringObj1 = new String("test2");
String stringObj2 = new String("test2");

// FALSE потому что разные обьъекты
if (stringObj1 == stringObj2) {
    System.out.println("Одинаковые строки");
}

// TRUE потому что само значение строки одинаковое
if (stringObj1.equals(stringObj2)) {
    System.out.println("Одинаковые строки");
}

Пользователь

от evalyn.barrows , 2 года назад

@hoyt.jerde 

Чтобы сравнить две строки в Java, вы можете использовать метод equals() класса String. Он проверяет, равны ли две строки по значению. Например:

1
2
3
4
5
6
7
8
String str1 = "Hello";
String str2 = "Hello";

if (str1.equals(str2)) {
    System.out.println("The strings are equal.");
} else {
    System.out.println("The strings are not equal.");
}


Обратите внимание, что метод equals() сравнивает строки по значению, а не по ссылке. Это означает, что даже если str1 и str2 являются разными объектами, строки будут считаться равными, если их значения равны.


Вы также можете сравнить строки с помощью оператора ==, но это сравнивает строки по ссылке, а не по значению. Таким образом, строки будут считаться равными только если они являются одним и тем же объектом.


Например:

1
2
3
4
5
6
7
8
String str1 = "Hello";
String str2 = "Hello";

if (str1 == str2) {
    System.out.println("The strings are equal.");
} else {
    System.out.println("The strings are not equal.");
}