Сравнение строк

Для полноценной работы со строками в примерах данного раздела следует понимать особенность, которую полностью мы в этом курсе раскрывать не будем.

А именно, одно и то же значение-строка может существовать в программе в нескольких экземплярах. Если два раза посчитать значение "1"+"2", то получим, конечно, два одинаковых значения "12", но это будут именно два одинаковых значения, а не одно и то же (в памяти компьютера в двух разных местах будут находиться две одинаковые строки).

А важно это потому, что операции == и !=, будучи примененными к строкам, проверяют именно сравнивается ли одно и то же значение. И для двух самостоятельных строк “12” результат применения == будет false!

На самом деле, вероятно, не стоит погружаться в эту тему прямо сейчас, наши уроки построены таким образом, чтобы ясное понимание этого принципа вам еще долго не понадобилось, важно знать конкретное его следствие.

А именно, как в таком случае нужно сравнивать строки именно по значению?

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

В сухом остатке: строки следует сравнивать не с помощью ==, а с помощью equals.

Неравенство строк, аналогично, следует проверять не с помощью !=, а как отрицание равенства, используя логический оператор отрицания: !str.equals(str2).

В предыдущих уроках упоминается, что извлечение символа из строки по его индексу возвращает значение типа “символ”, а не “строка”. Необходимо в связи с этим иметь в виду два факта:

1) сравнение символа и строки через equals всегда дает неравенство,

2) символы между собой можно сравнивать через ==, в этом смысле символы ближе к числам, чем к строкам.

Задание

Напишите функцию isMister, которая принимает строку и проверяет, является ли она словом "Mister".


Нашли ошибку? Есть что добавить? Пулреквесты приветствуютсяhttps://github.com/hexlet-basics

Упражнение доступно только авторизованным пользователям.

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