trim()
trim() убирает пробелы, \t, \n и \r с обоих концов строки прямо в объекте String — удобно перед сравнением команд из Serial.
Полная статья
Описание
trim() убирает все пробельные символы (пробелы, табуляцию, символы новой строки) с обоих концов строки. trim() Важно понимать: функция изменяет саму строку, а не возвращает очищенную копию. Исходный объект myString после вызова будет уже без лишних пробелов.
Это особенно полезно, когда строка приходит из внешнего источника — например, считывается из Serial-порта или из файла на SD-карте — и может содержать случайные пробелы или символ перевода строки \n в конце.
Синтаксис
myString.trim()
Параметры
myString: переменная типа String, которую нужно очистить от крайних пробелов.
Возвращает
Ничего. Строка изменяется напрямую.
Где применяется
- Разбор команд из Serial. Пользователь вводит команду с клавиатуры — в конце почти всегда оказывается
\r\n.trim()избавит от них перед сравнением строк. - Чтение данных из файла. Строки, считанные с SD-карты, нередко содержат пробелы или символы перевода строки.
- Парсинг ответов от модулей. Ответы GSM- или Wi-Fi-модулей часто приходят с лишними символами в конце.
- Сравнение строк. Если
myString == "ON"не срабатывает, хотя визуально всё верно — скорее всего, в строке есть невидимый пробел.trim()решает эту проблему.
Практические замечания
trim()работает «на месте»: отдельной переменной для результата не нужно, просто вызовите метод и используйте ту же строку дальше.- Функция удаляет пробелы только с краёв. Пробелы внутри строки она не трогает.
- Если строка и так не содержит лишних символов, вызов
trim()безопасен — ничего не изменится. - Символы
\n,\rи\tтоже считаются пробельными и будут удалены. - Если после
trim()сравнение строк всё равно не работает, проверьте, нет ли внутри строки непечатаемых символов —trim()их не удаляет.