Arduino:Примеры/StringSubstring

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

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


Строковая функция Substring [1]

Функция substring(), простите за тавтологию, функционально близка к функциям charAt(), startsWith() и endsWith(). Она позволяет искать в строке определенные символы.

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

  • Плата Arduino;

Цепь

Цепь для этого примера не нужна, просто подключите Arduino к компьютеру (при помощи USB).

Arduino bb.png

Код

Функция substring(), в которой задан всего один параметр, ищет от заданной позиции и до конца строки. То есть подразумевается, что искомая подстрока длится до самого конца строки. Например,

1 String stringOne = "Content-Type: text/html";
2 
3   // Функция substring(19) ищет подстроку от указанной позиции (т.е. от 19) и до самого конца:
4   if (stringOne.substring(19) == "html") {
5    }

Этот код верен, тогда как этот:

1 String stringOne = "Content-Type: text/html";
2 
3   // Функция substring(19) ищет подстроку от указанной позиции (т.е. от 19) и до самого конца:
4   if (stringOne.substring(19) == "htm") {
5    }

...не верен, поскольку после подстроки «htm» в строке еще присутствует символ «l».

При этом substring() с двумя параметрами ищет от одной заданной позиции и до другой. Например,

1 String stringOne = "Content-Type: text/html";
2 
3   // Вы также можете искать подстроки, находящиеся в центре строки:
4   if (stringOne.substring(14,18) == "text") {
5 
6   }

В этом фрагменте функция ищет слово «text», находящееся с 14-ой позиции по 18-ую.

Внимание! Убедитесь, что заданные вами позиции находятся в пределах строки, иначе такой код может повлечь непредвиденные результаты. Эту ошибку бывает особенно трудно найти, если в substring() указано два параметра – когда первый из них меньше длины строки, а второй нет.

 1 /*
 2   Строковая функция Substring
 3  
 4   Несколько примеров использования функции substring() при работе со строками.
 5  
 6   Создан 27 июля 2010, 
 7   модифицирован 2 апреля 2012 Заком Эвеландом (Zach Eveland).
 8  
 9   http://arduino.cc/en/Tutorial/StringSubstring
10  
11   Этот код не защищен авторским правом.
12  */
13 
14 void setup() {
15   // Инициализируем последовательную передачу данных и ждем открытия порта:
16   Serial.begin(9600);
17   while (!Serial) {
18     ; // ждем, когда подключится последовательный порт (только для Leonardo)
19   }
20 
21   // Отсылаем вступительную часть:
22   Serial.println("\n\nString  substring():");
23   Serial.println();
24 }
25 
26 void loop() {
27   // Задаем строку:
28   String stringOne = "Content-Type: text/html";
29   Serial.println(stringOne);
30 
31   // Функция substring(19) ищет подстроку от указанной позиции (т.е. от 19) и до самого конца:
32   if (stringOne.substring(19) == "html") {
33     Serial.println("It's an html file"); 
34   } 
35   // Вы также можете искать подстроки, находящиеся в центре строки:
36   if (stringOne.substring(14,18) == "text") {
37     Serial.println("It's a text-based file"); 
38   } 
39 
40   // Пока условие верно, ничего не делаем:
41   while(true);
42 }

См.также

  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

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