replace()

Метод replace() заменяет все вхождения substring1 на substring2 прямо внутри объекта String — без создания новой строки.

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

Описание

Метод replace() находит в строке все вхождения substring1 и заменяет каждое из них на substring2. Замена происходит «на месте»: сам объект myString изменяется, новый объект не создаётся.

Можно заменять как одиночные символы, так и подстроки произвольной длины. Если substring1 встречается в строке несколько раз, будут заменены все вхождения без исключения.

Синтаксис

myString.replace(substring1, substring2)

Параметры

  • myString: переменная типа String — исходная строка, в которой выполняется замена.
  • substring1: переменная типа String — подстрока (или символ), которую нужно найти и заменить.
  • substring2: переменная типа String — подстрока (или символ), на которую производится замена.

Возвращает

Ничего. Метод изменяет сам объект myString, а не возвращает новую строку.

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

  • Форматирование вывода — убрать лишние пробелы, заменить разделители или привести строку к нужному виду перед отправкой по Serial.
  • Обработка команд — заменить сокращения или псевдонимы в принятой строке на стандартные ключевые слова перед разбором.
  • Подготовка данных для дисплея — заменить спецсимволы, которые конкретный дисплей не поддерживает, на безопасные альтернативы.
  • Очистка строк — убрать нежелательные символы, заменив их пустой строкой "".

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

  • Если substring1 не найдена в строке, метод ничего не делает — строка остаётся без изменений, ошибки не возникает.
  • Чтобы удалить все вхождения подстроки, передайте в качестве substring2 пустую строку "".
  • Метод чувствителен к регистру: "Hello" и "hello" — разные подстроки.
  • Работа с объектами String связана с динамическим выделением памяти. На платах с малым объёмом ОЗУ (например, Arduino Uno) частые операции со строками могут привести к фрагментации кучи. Если критична стабильность, рассмотрите работу с массивами char и функциями из <string.h>.
  • Метод заменяет все вхождения, а не только первое — это отличает его от аналогичных функций в некоторых других языках.