Arduino:Примеры/StringCharacters

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

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


Строковые функции для работы с символами [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 к компьютеру при помощи USB-соединения.

Рис. 1. Плата Arduino

Код

/*
  Строковые функции 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);
}

См.также

  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

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