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() их не удаляет.