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

Arduino:Примеры/StringAppendOperator

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

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

Контакты:

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


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

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

  1. String stringOne = "A long integer: ";
  2.  
  3.   // используем +=, чтобы добавить к строке длинное целое:
  4.   stringOne += 123456789;

...или...

  1. String stringTwo = "A long integer: ";
  2.  
  3.   // используем concat(), чтобы добавить к строке длинное целое:
  4.   stringTwo.concat(123456789);

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

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

  • Плата Arduino;

Цепь

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

Arduino bb.png

Код

  1. /*
  2.  Добавление данных к строке при помощи оператора += и функции concat()
  3.  
  4.  Несколько примеров добавления к строкам разных типов данных.
  5.  
  6.  Создан 27 июля 2010,
  7.  модифицирован 2 апреля 2012 Томом Иго (Tom Igoe).
  8.  
  9.  http://arduino.cc/en/Tutorial/StringAppendOperator
  10.  
  11.  Этот код не защищен авторским правом.
  12.  */
  13.  
  14. String stringOne, stringTwo;
  15.  
  16. void setup() {
  17.   // Инициализируем последовательную передачу данных и ждем открытия порта:
  18.   Serial.begin(9600);
  19.   while (!Serial) {
  20.     ; // ждем подключения последовательного порта (нужно только для Leonardo)
  21.   }
  22.  
  23.   stringOne = String("Sensor ");
  24.   stringTwo = String("value");
  25.   // Отправляем вступительную часть:
  26.   Serial.println("\n\nAppending to a string:");
  27.   Serial.println();
  28. }
  29.  
  30. void loop() {
  31.   Serial.println(stringOne);  // выводим  "Sensor "
  32.  
  33.   // Добавляем к строке строку:
  34.   stringOne += stringTwo;
  35.   Serial.println(stringOne);  // выводим "Sensor value"
  36.  
  37.   // Добавляем к строке строку-константу:
  38.   stringOne += " for input ";
  39.   Serial.println(stringOne);  // выводим "Sensor value for input"
  40.  
  41.   // Добавляем к строке символ-константу:
  42.   stringOne += 'A';
  43.   Serial.println(stringOne);   // выводим "Sensor value for input A"
  44.  
  45.   // Добавляем к строке целочисленную константу:
  46.   stringOne += 0;
  47.   Serial.println(stringOne);   // выводим "Sensor value for input A0"
  48.  
  49.   // Добавляем к строке строку-константу:
  50.   stringOne += ": ";
  51.   Serial.println(stringOne);  // выводим "Sensor value for input A0: "
  52.  
  53.   // Добавляем к строке целочисленную переменную:
  54.   stringOne += analogRead(A0);
  55.   Serial.println(stringOne);   // выводим "Sensor value for input A0: 456" или вместо «456» какое-нибудь другое значение, возвращенное функцией analogRead(A0)
  56.  
  57.   Serial.println("\n\nchanging the Strings' values");
  58.   stringOne = "A long integer: ";
  59.   stringTwo = "The millis(): ";
  60.  
  61.   // Добавляем к строке константу в виде длинного целого:
  62.   stringOne += 123456789;
  63.   Serial.println(stringOne);   // Выводим "A long integer: 123456789"
  64.  
  65.   // Используем функцию concat(), чтобы добавить к строке переменную типа long:
  66.   stringTwo.concat(millis());
  67.   Serial.println(stringTwo); // выводим "The millis(): 43534" или вместо «43534» какое-нибудь другое значение, возвращенное функцией millis()
  68.  
  69.   // пока условие верно, ничего не делаем:
  70.   while(true);
  71. }

См.также

  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. Arduino - String Appending Operators