Arduino:Примеры/StringReplace

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

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


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

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

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

  • Плата Arduino;

Цепь

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

Код

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

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

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

/*
  Строковая функции замены символов
 
  Несколько примеров замены символов и последовательностей символов в строке
 
  Создан 27 июля 2010,
  модифицирован 2 апреля 2012 Томом Иго (Tom Igoe)
 
  http://arduino.cc/en/Tutorial/StringReplace
 
  Этот код не защищен авторским правом. 
 */

void setup() {
  // Инициализируем последовательную передачу данных и ждем, когда порт откроется:
  Serial.begin(9600);
  while (!Serial) {
    ; // ждем подключения последовательного порта (нужно только для Leonardo)
  }

  // Отсылаем вступительную часть:
  Serial.println("\n\nString  replace:\n");
  Serial.println();
}

void loop() {
  String stringOne = "<html><head><body>";
  Serial.println(stringOne);
  // Функция replace() заменяет все примеры заданной подстроки на другую подстроку.
  // Для начала, делаем копию оригинальной строки:
  String stringTwo = stringOne;
  // Теперь выполняем замену:
  stringTwo.replace("<", "</");
  // Выводим оригинальную строку:
  Serial.println("Original string: " + stringOne);
  // Следом выводим модифицированную строку:
  Serial.println("Modified string: " + stringTwo);

  // Функцию replace() можно использовать и для замены отдельных символов:
  String normalString = "bookkeeper";
  Serial.println("normal: " + normalString);
  String leetString = normalString;
  leetString.replace('o', '0');
  leetString.replace('e', '3');
  Serial.println("l33tspeak: " + leetString);

  // Пока условие верно, ничего не делаем:
  while(true);
}

См.также

  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

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