Arduino:Примеры/StringAppendOperator

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

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Два оператора для добавления к строкам разных типов данных [1]

Для конкатенации, т.е. объединения строк с различными типами данных можно воспользоваться как оператором + (из примера «Оператор для объединения строк друг с другом»), так и оператором +=, а также функцией concat(). Последние два работают по одинаковому принципу, поэтому каким именно пользоваться – вопрос стиля. Ниже продемонстрированы примеры использования обоих операторов, но результат одинаков и для первого, и для второго:

String stringOne = "A long integer: ";

  // используем +=, чтобы добавить к строке длинное целое:
  stringOne += 123456789;

...или...

String stringTwo = "A long integer: ";

  // используем concat(), чтобы добавить к строке длинное целое:
  stringTwo.concat(123456789);

В обоих случаях итоговое значение будет одним и тем же – "A long integer: 123456789". Как и оператор +, эти два оператора удобны для «сборки» более длинных строк при помощи объединения различных типов данных.

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

  • Плата Arduino;

Цепь

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

Arduino bb.png

Код

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

String stringOne, stringTwo;

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

  stringOne = String("Sensor ");
  stringTwo = String("value");
  // Отправляем вступительную часть:
  Serial.println("\n\nAppending to a string:");
  Serial.println();
}

void loop() {
  Serial.println(stringOne);  // выводим  "Sensor "

  // Добавляем к строке строку:
  stringOne += stringTwo;
  Serial.println(stringOne);  // выводим "Sensor value"

  // Добавляем к строке строку-константу:
  stringOne += " for input ";
  Serial.println(stringOne);  // выводим "Sensor value for input"

  // Добавляем к строке символ-константу:
  stringOne += 'A';
  Serial.println(stringOne);   // выводим "Sensor value for input A"

  // Добавляем к строке целочисленную константу:
  stringOne += 0;
  Serial.println(stringOne);   // выводим "Sensor value for input A0"

  // Добавляем к строке строку-константу:
  stringOne += ": ";
  Serial.println(stringOne);  // выводим "Sensor value for input A0: "

  // Добавляем к строке целочисленную переменную:
  stringOne += analogRead(A0);
  Serial.println(stringOne);   // выводим "Sensor value for input A0: 456" или вместо «456» какое-нибудь другое значение, возвращенное функцией analogRead(A0)

  Serial.println("\n\nchanging the Strings' values");
  stringOne = "A long integer: ";
  stringTwo = "The millis(): ";

  // Добавляем к строке константу в виде длинного целого:
  stringOne += 123456789;
  Serial.println(stringOne);   // Выводим "A long integer: 123456789"

  // Используем функцию concat(), чтобы добавить к строке переменную типа long:
  stringTwo.concat(millis());
  Serial.println(stringTwo); // выводим "The millis(): 43534" или вместо «43534» какое-нибудь другое значение, возвращенное функцией millis()

  // пока условие верно, ничего не делаем:
  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

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