Функция String replace()
Функция replace() позволяет заменить все вхождения заданного символа или подстроки в объекте String на другой символ или подстроку.
Функция Stringreplace() заменяет все вхождения указанного символа или подстроки на другое значение. С помощью replace можно заменять не только отдельные символы, но и целые подстроки внутри объекта String.
Это удобно, например, когда нужно очистить строку от ненужных символов, привести текст к единому формату или подготовить данные перед отправкой по Serial.
Необходимое оборудование
Схема подключения
Дополнительных компонентов не требуется. Достаточно подключить плату к компьютеру через USB и открыть монитор порта в Arduino IDE — именно там будут отображаться результаты работы скетча.

Подпись к схеме: Arduino UNO подключается к компьютеру напрямую через USB. Никаких дополнительных компонентов на макетной плате не нужно.
Код
Важное предупреждение: Если искомая подстрока длиннее самой строки, замена не произойдёт. Например:
String stringOne = "<html><head><body>";
stringOne.replace("<html><head></head><body></body></html>", "Blah");
Код скомпилируется без ошибок, но stringOne останется неизменным — потому что подстрока для замены длиннее исходной строки. Это не ошибка компилятора, а особенность поведения функции, которую легко упустить при отладке.
Как это работает
replace() последовательно просматривает строку и заменяет каждое вхождение указанного символа или подстроки. Замена происходит «на месте» — исходный объект String изменяется. Если совпадений нет, строка остаётся прежней.
Типичные ошибки
- Регистр имеет значение.
replace("Hello", "Hi")не затронет"hello"— функция чувствительна к регистру. - Пустая строка в качестве замены — допустимый приём для удаления подстроки:
stringOne.replace("лишнее", "")просто удалит все вхождения. - Замена длиннее строки — как описано выше, ничего не произойдёт, и компилятор об этом не предупредит.
Как проверить результат
Откройте монитор порта (Ctrl+Shift+M) на скорости, указанной в Serial.begin(). Вы увидите исходную строку и результат после замены — так проще убедиться, что функция сработала именно так, как ожидалось.
Дополнительные материалы
Больше базовых уроков собрано в разделе built-in examples.
Подробное описание всех функций языка Arduino доступно в language reference.
Последнее обновление: 27.03.2018, SM