Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/StringReplace

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Строковая функция замены символов [1]

Строковая функция replace() может заменять как отдельные символы, так и целые последовательности символов. К примеру, с ее помощью можно поменять все символы «b» на символы «d» и т.п.

Необходимое оборудование

  • Плата Arduino;

Цепь

Для этого урока цепь не нужна. Требуется лишь подключить Arduino к компьютеру (через USB).

Arduino bb.png

Код

Внимание! Если подстрока-шаблон будет длиннее исходной строки, то замены не произойдет. Например,

  1. String stringOne = "<html><head><body>";
  2. String stringTwo = stringOne.replace("<html><head></head><body></body></html>", "Blah");

В этом случае код скомпилируется, но строка stringOne останется неизменной, поскольку она короче подстроки-шаблона.

  1. /*
  2.   Строковая функции замены символов
  3.  
  4.   Несколько примеров замены символов и последовательностей символов в строке
  5.  
  6.   Создан 27 июля 2010,
  7.   модифицирован 2 апреля 2012 Томом Иго (Tom Igoe)
  8.  
  9.   http://arduino.cc/en/Tutorial/StringReplace
  10.  
  11.   Этот код не защищен авторским правом.
  12.  */
  13.  
  14. void setup() {
  15.   // Инициализируем последовательную передачу данных и ждем, когда порт откроется:
  16.   Serial.begin(9600);
  17.   while (!Serial) {
  18.     ; // ждем подключения последовательного порта (нужно только для Leonardo)
  19.   }
  20.  
  21.   // Отсылаем вступительную часть:
  22.   Serial.println("\n\nString  replace:\n");
  23.   Serial.println();
  24. }
  25.  
  26. void loop() {
  27.   String stringOne = "<html><head><body>";
  28.   Serial.println(stringOne);
  29.   // Функция replace() заменяет все примеры заданной подстроки на другую подстроку.
  30.   // Для начала, делаем копию оригинальной строки:
  31.   String stringTwo = stringOne;
  32.   // Теперь выполняем замену:
  33.   stringTwo.replace("<", "</");
  34.   // Выводим оригинальную строку:
  35.   Serial.println("Original string: " + stringOne);
  36.   // Следом выводим модифицированную строку:
  37.   Serial.println("Modified string: " + stringTwo);
  38.  
  39.   // Функцию replace() можно использовать и для замены отдельных символов:
  40.   String normalString = "bookkeeper";
  41.   Serial.println("normal: " + normalString);
  42.   String leetString = normalString;
  43.   leetString.replace('o', '0');
  44.   leetString.replace('e', '3');
  45.   Serial.println("l33tspeak: " + leetString);
  46.  
  47.   // Пока условие верно, ничего не делаем:
  48.   while(true);
  49. }

См.также

  1. String object
  2. StringConstructors
  3. StringAdditionOperator
  4. StringIndexOf
  5. StringAppendOperator
  6. StringLengthTrim
  7. StringCaseChanges
  8. StringReplace
  9. StringCharacters
  10. StringStartsWithEndsWith
  11. StringComparisonOperators
  12. StringSubstring

Внешние ссылки

  1. String replace Function