Arduino:Примеры/StringCharacters
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Строковые функции для работы с символами [1]
Строковые функции charAt() и setCharAt() используются для того, чтобы найти или задать значение для того или иного символа, находящегося в строке.
Чаще всего эти функции используются, чтобы помочь вам найти и поменять определенный символ. Например, нижеследующий код меняет символ «двоеточие» на символ «равно»:
String reportString = "SensorReading: 456";
int colonPosition = reportString.indexOf(':');
reportString.setCharAt(colonPosition, '=');
А вот другой пример. В нем ищется слово, первой буквой которого будет заглавная «B»:
String reportString = "Franklin, Benjamin";
int spacePosition = reportString.indexOf(' ');
if (reportString.charAt(spacePosition + 1) == 'B') {
Serial.println("You might have found the Benjamins.")
}
Внимание! Если вы будете искать или вставлять значение, длина которого будет превышать длину строки, это может повлечь неожиданные результаты. Если не уверены, лучше проверьте длину стоки при помощи функции length().
Необходимое оборудование
- Плата Arduino;
Цепь
Для этого урока цепь выстраивать не нужно, просто подключите Arduino к компьютеру при помощи USB-соединения.
Код
/*
Строковые функции charAt() и setCharAt()
Несколько примеров того, как искать и менять те или иные символы, находящиеся в строке.
Создан 27 июля 2010,
модифицирован 2 апреля 2012 Томом Иго (Tom Igoe).
http://arduino.cc/en/Tutorial/StringCharacters
Этот пример не защищен авторским правом.
*/
void setup() {
// Инициализируем последовательную передачу данных и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ждем подключения последовательного порта (нужно только для Leonardo)
}
Serial.println("\n\nString charAt() and setCharAt():");
}
void loop() {
// Создаем строку со значением, считанным с датчика:
String reportString = "SensorReading: 456";
Serial.println(reportString);
// Самая важная цифра этой строки – на 15-ой позиции:
char mostSignificantDigit = reportString.charAt(15);
Serial.println("Most significant digit of the sensor reading is: " + mostSignificantDigit);
// Добавляем пробел:
Serial.println();
// Мы также можем поменять символ в строке. Вместо «:» ставим «=»:
reportString.setCharAt(13, '=');
Serial.println(reportString);
// Пока условие верно, ничего не делаем:
while(true);
}
См.также
- String object
- StringConstructors
- StringAdditionOperator
- StringIndexOf
- StringAppendOperator
- StringLengthTrim
- StringCaseChanges
- StringReplace
- StringCharacters
- StringStartsWithEndsWith
- StringComparisonOperators
- StringSubstring