Arduino:Примеры/StringAdditionOperator: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
= Оператор для объединения строк друг с другом <ref>[http://www.arduino.cc/en/Tutorial/StringAdditionOperator Arduino - String Addition Operator]</ref>= | |||
Строки можно присоединять друг к другу самыми разными способами. Эта операция называется конкатенацией, а ее результатом является исходная строка плюс другая строка (или символьный массив), которую вы к ней добавили. Оператор + позволяет объединять строку с другой строкой, со значением переменной, с символом-константой, с массивом из символов-констант или с ASCII-репрезентацией константы. | Строки можно присоединять друг к другу самыми разными способами. Эта операция называется конкатенацией, а ее результатом является исходная строка плюс другая строка (или символьный массив), которую вы к ней добавили. Оператор + позволяет объединять строку с другой строкой, со значением переменной, с символом-константой, с массивом из символов-констант или с ASCII-репрезентацией константы. | ||
Строка 160: | Строка 160: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= См.также= | |||
# String object | # String object | ||
Строка 175: | Строка 175: | ||
# StringSubstring | # StringSubstring | ||
=Внешние ссылки= | |||
<references /> | <references /> | ||
{{ads}} | |||
{{Навигационная таблица/Справочник языка Arduino}} | {{Навигационная таблица/Справочник языка Arduino}} | ||
{{Навигационная таблица/Arduino библиотеки}} | {{Навигационная таблица/Arduino библиотеки}} | ||
{{Навигационная таблица/Arduino продукты}} | |||
{{Навигационная таблица/Arduino/Примеры}} | |||
{{Навигационная таблица/Телепорт}} | {{Навигационная таблица/Телепорт}} | ||
[[Категория:Пример]] | [[Категория:Пример]] |
Версия от 23:57, 17 февраля 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Оператор для объединения строк друг с другом [1]
Строки можно присоединять друг к другу самыми разными способами. Эта операция называется конкатенацией, а ее результатом является исходная строка плюс другая строка (или символьный массив), которую вы к ней добавили. Оператор + позволяет объединять строку с другой строкой, со значением переменной, с символом-константой, с массивом из символов-констант или с ASCII-репрезентацией константы.
// Добавление к строке целочисленной константы:
stringThree = stringOne + 123;
// Добавление к строке константы в виде длинного целого:
stringThree = stringOne + 123456789;
// Добавление к строке константы в виде символа:
stringThree = stringOne + 'A';
// Добавление к строке константы в виде строки:
stringThree = stringOne + "abc";
// Объединение двух строк друг с другом:
stringThree = stringOne + stringTwo;
Кроме того оператором + можно пользоваться и для того, чтобы добавить к строке результат какой-нибудь функции, но только в том случае, если функция возвращает данные одного из типов, указанных выше. Например,
stringThree = stringOne + millis();
Этот вариант приемлем, поскольку функция millis() возвращает данные типа «длинное целое». Но можно сделать и так:
stringThree = stringOne + analogRead(A0);
...поскольку функция analogRead() возвращает целочисленные значения. Конкатенация строк может пригодиться, когда вам нужно отобразить комбинацию значений и описания этих значений одной строкой – к примеру, при последовательной передаче данных через Ethernet-соединение, при выводе информации на LCD-экран и т.д.
Внимание! Нужно быть осторожнее при объединении в одну строку разных типов данных, т.к. это может повлечь непредвиденные результаты. К примеру, результатом этого фрагмента кода:
int sensorValue = analogRead(A0);
String stringOne = "Sensor value: ";
String stringThree = stringOne + sensorValue;
Serial.println(stringThree);
...может быть «Sensor Value: 402» (ну, или какое-нибудь другое число, считанное функцией analogRead()). Однако вот этот код:
int sensorValue = analogRead(A0);
String stringThree = "Sensor value: " + sensorValue;
Serial.println(stringThree);
...даст непредвиденный результат, поскольку строке stringThree не присвоили никакого начального значения перед объединением разных типов данных.
Или вот еще один пример инициализации, которая может повлечь ошибки:
Serial.println("I want " + analogRead(A0) + " donuts");
Эта строка кода не скомпилируется, поскольку компилятор не сможет правильно расставить приоритет операций. С другой стороны, нижеследующий код скомпилируется, но запустится не так, как ожидается:
int sensorValue = analogRead(A0);
String stringThree = "I want " + sensorValue;
Serial.println(stringThree + " donuts");
Он запустится неправильно по той же причине, что и раньше – строкt stringThree не присвоили начального значения перед объединением разных типов данных. Поэтому перед тем как объединять строки, инициализируйте их.
Необходимое оборудование
- Плата Arduino;
Цепь
Для этого примера не нужно строить никакой цепи, хотя Arduino должна быть через USB подключена к компьютеру.
Код
Вот рабочий пример разных типов конкатенации.
/*
Добавление строк друг к другу
Несколько примеров объединения строк.
Вы также можете попробовать добавлять к строке разные типы данных,
как показано по ссылке ниже:
http://arduino.cc/en/Tutorial/StringAdditionOperator
Создан 27 июля 2010,
модифицирован 2 апреля 2012 Томом Иго (Tom Igoe).
Этот код не защищен авторским правом.
*/
// Объявляем три строки:
String stringOne, stringTwo, stringThree;
void setup() {
// Инициализируем последовательную передачу данных
// и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ждем подключения последовательного порта (нужно только для Leonardo)
}
stringOne = String("stringThree = ");
stringTwo = String("this string");
stringThree = String ();
// Отправляем вводную часть:
Serial.println("\n\nAdding strings together (concatenation):");
Serial.println();
}
void loop() {
// Добавляем к строке целочисленную константу:
stringThree = stringOne + 123;
Serial.println(stringThree); // выводим "stringThree = 123"
// Добавляем к строке константу в виде длинного целого:
stringThree = stringOne + 123456789;
Serial.println(stringThree); // выводим "You added 123456789"
// Добавляем к строке константу в виде символа:
stringThree = stringOne + 'A';
Serial.println(stringThree); // выводим "You added A"
// Добавляем к строке константу в виде строки:
stringThree = stringOne + "abc";
Serial.println(stringThree); // выводим "You added abc"
stringThree = stringOne + stringTwo;
Serial.println(stringThree); // выводим "You added this string"
// Добавляем к строке целочисленную переменную:
int sensorValue = analogRead(A0);
stringOne = "Sensor value: ";
stringThree = stringOne + sensorValue;
Serial.println(stringThree); // выводим "Sensor Value: 401" либо вместо «402» какое-то другое значение, считанное функцией analogRead(A0)
// Добавляем к строке переменную в виде длинного целого:
long currentTime = millis();
stringOne="millis() value: ";
stringThree = stringOne + millis();
Serial.println(stringThree); // выводим "The millis: 345345" либо вместо «345345» какое-то другое значение от currentTime
// пока условие верно, ничего не делаем:
while(true);
}
См.также
- String object
- StringConstructors
- StringAdditionOperator
- StringIndexOf
- StringAppendOperator
- StringLengthTrim
- StringCaseChanges
- StringReplace
- StringCharacters
- StringStartsWithEndsWith
- StringComparisonOperators
- StringSubstring
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы с устаревшим атрибутом подсветки синтаксиса «enclose»
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino