Разное

Java сравнить строки: Как сравнивать строки в Java – Java примеры

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

Часто задаваемые вопросы о сравнении строк в Java: Можете ли вы поделиться несколькими примерами того, как сравнивать строки в Java?

Если вы похожи на меня, когда я впервые начал использовать Java, я хотел использовать оператор == , чтобы проверить, равны ли два экземпляра String , но это неправильный способ сделать это в Java.

В этом руководстве я покажу несколько различных способов правильного сравнения строк Java, начиная с подхода, который я использую чаще всего. В конце этого урока я также расскажу, почему 9Оператор 0005 == не работает при сравнении строк Java.

Решение 1. Сравнение строк Java с методом equals

Большую часть времени — может быть, 95% времени — я сравниваю строки Java с методом equals класса String, например:

если (строка1.равно(строка2))
 

Метод String equals просматривает две строки Java, и если они содержат одну и ту же строку символов, они считаются равными.

Взгляните на пример быстрого сравнения строк с методом равно . Если бы был запущен следующий тест, две строки не считались бы равными, потому что символы не совсем одинаковы (регистр символов отличается ):

Строка string1 = "foo";
Строка string2 = "FOO";

если (строка1.равно(строка2))
{
  // эта строка не будет напечатана, потому что
  // метод java string equals возвращает false:
  System.out.println("Эти две строки одинаковые")
}
 

Но когда две строки содержат точно такую ​​же строку символов , метод равно вернет true, как в этом примере:

Строка string1 = "foo";
Строка string2 = "foo";

// проверка на равенство с помощью метода java string equals
если (строка1.равно(строка2))
{
  // эта строка БУДЕТ напечатана
  System.out.println("Эти две строки одинаковые")
}
 

Решение 2. Сравнение строк с помощью метода equalsIgnoreCase

В некоторых тестах сравнения строк вы захотите игнорировать, являются ли строки прописными или строчными . Если вы хотите проверить свои строки на равенство без учета регистра, используйте метод equalsIgnoreCase класса String , например:

Строка string1 = "foo";
Строка string2 = "FOO";

// сравнение строк java без учета регистра
если (string1.equalsIgnoreCase(string2))
{
  // эта строка БУДЕТ напечатана
  System.out.println("Без учета регистра, две строки одинаковые")
}
 

Решение 3. Сравнение строк Java с помощью метода ‘compareTo’

Существует также третий, менее распространенный способ сравнения строк Java, а именно метод

сравнения класса String . Если две строки абсолютно одинаковы, метод compareTo вернет значение 0 (ноль). Вот краткий пример того, как выглядит этот подход сравнения строк:

Строка string1 = "foo bar";
Строка string2 = "foo bar";

// пример сравнения строк java
если (string1.compareTo(string2) == 0)
{
  // эта строка БУДЕТ напечатана
  System.out.println("Эти две строки одинаковые")
}
 

(Вкратце: я не использовал этот подход уже много лет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *