== (comparison)
Оператор == сравнивает содержимое двух объектов String с учётом регистра: "hello" и "HELLO" считаются разными строками.
Полная статья
Описание
Оператор == позволяет проверить, совпадает ли текст двух объектов String. Если строки содержат абсолютно одинаковые символы в одинаковом регистре, результат будет true. Сравнение регистрозависимое: строки "hello" и "HELLO" считаются разными, потому что буквы в них написаны по-разному.
Это удобно, когда нужно, например, сравнить команду, пришедшую через Serial, с ожидаемым словом, или проверить, совпадает ли введённый пользователем текст с заранее заданным значением.
Синтаксис
myString1 == myString2
Параметры
myString1: первый объектString, с которым ведётся сравнение.myString2: второй объектString, с которым сравнивается первый.
Возвращает
true— если обе строки содержат одинаковый текст.false— если строки хотя бы в одном символе отличаются, в том числе по регистру.
Практические замечания
- Если регистр не важен и нужно считать
"Hello"и"hello"равными, используйте методequalsIgnoreCase()вместо оператора==. - Будьте осторожны с C-строками (
char[]): для них оператор==сравнивает не текст, а адреса в памяти, и почти всегда вернётfalse, даже если строки визуально одинаковы. Описанное на этой странице поведение относится исключительно к объектамString. - Если данные приходят через
Serial.readString()или аналогичные функции, строка может содержать лишние символы — например,'\n'или'\r'в конце. В этом случае сравнение вернётfalseдаже при внешне одинаковом тексте. Перед сравнением стоит вызватьtrim(). - Оператор
==работает только с объектами типаString. Числа, символы и другие типы сначала нужно явно привести кStringили использовать другие способы сравнения.