remove()

Метод remove() удаляет символы из объекта String прямо на месте — от заданного индекса до конца строки или на указанное количество символов count.

Полная статья

Описание

Метод remove() изменяет строку типа String непосредственно в памяти: удаляет символы начиная с указанной позиции. Можно удалить всё до конца строки или задать точное количество символов, которые нужно убрать. Исходный объект изменяется, отдельная копия не создаётся.

Синтаксис

  • myString.remove(index)
  • myString.remove(index, count)

Параметры

  • myString: переменная типа String.
  • index: позиция первого удаляемого символа. Нумерация начинается с нуля, то есть первый символ строки — это позиция 0. Разрешённые типы данных: unsigned int.
  • count: сколько символов нужно удалить начиная с позиции index. Если этот параметр не указан, удаляются все символы от index до конца строки. Разрешённые типы данных: unsigned int.

Возвращает

Ничего. Метод изменяет сам объект String, к которому применяется.

Пример кода

    String greeting = "hello";
    greeting.remove(2, 2);  // greeting теперь содержит "heo"

Где применяется

  • Обрезка лишних символов в конце строки, полученной от датчика или по Serial.
  • Удаление служебных символов (переносов строки \n, пробелов, разделителей) перед разбором данных.
  • Очистка части строки перед повторной записью в неё новых данных.
  • Форматирование вывода: удаление ненужного префикса или суффикса перед отправкой в дисплей или Serial.

Практические замечания

  • Если index больше или равен длине строки, метод ничего не делает — строка остаётся без изменений.
  • Если count превышает количество символов от index до конца строки, удаляются только оставшиеся символы — выхода за границы не происходит.
  • Метод изменяет строку «на месте», поэтому если исходные данные ещё нужны, сделайте копию до вызова: String backup = myString;.
  • Частое использование remove() вместе с другими методами, изменяющими длину строки, может приводить к фрагментации кучи на платах с малым объёмом RAM (например, Uno). Старайтесь заранее планировать размер строк.
  • Для удаления одного символа в конкретной позиции удобно использовать myString.remove(index, 1).