Главная chevron_right Уроки chevron_right Встроенные примеры chevron_right Строки chevron_right Функция String replace()

Функция 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