Arduino:Примеры/StringSubstring: различия между версиями
Myagkij (обсуждение | вклад) м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">») |
(нет различий)
|
Версия от 00:40, 14 декабря 2016
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Строковая функция Substring [1]
Функция substring(), простите за тавтологию, функционально близка к функциям charAt(), startsWith() и endsWith(). Она позволяет искать в строке определенные символы.
Необходимое оборудование
- Плата Arduino;
Цепь
Цепь для этого примера не нужна, просто подключите Arduino к компьютеру (при помощи USB).
Код
Функция substring(), в которой задан всего один параметр, ищет от заданной позиции и до конца строки. То есть подразумевается, что искомая подстрока длится до самого конца строки. Например,
String stringOne = "Content-Type: text/html";
// Функция substring(19) ищет подстроку от указанной позиции (т.е. от 19) и до самого конца:
if (stringOne.substring(19) == "html") {
}
Этот код верен, тогда как этот:
String stringOne = "Content-Type: text/html";
// Функция substring(19) ищет подстроку от указанной позиции (т.е. от 19) и до самого конца:
if (stringOne.substring(19) == "htm") {
}
...не верен, поскольку после подстроки «htm» в строке еще присутствует символ «l».
При этом substring() с двумя параметрами ищет от одной заданной позиции и до другой. Например,
String stringOne = "Content-Type: text/html";
// Вы также можете искать подстроки, находящиеся в центре строки:
if (stringOne.substring(14,18) == "text") {
}
В этом фрагменте функция ищет слово «text», находящееся с 14-ой позиции по 18-ую.
Внимание! Убедитесь, что заданные вами позиции находятся в пределах строки, иначе такой код может повлечь непредвиденные результаты. Эту ошибку бывает особенно трудно найти, если в substring() указано два параметра – когда первый из них меньше длины строки, а второй нет.
/*
Строковая функция Substring
Несколько примеров использования функции substring() при работе со строками.
Создан 27 июля 2010,
модифицирован 2 апреля 2012 Заком Эвеландом (Zach Eveland).
http://arduino.cc/en/Tutorial/StringSubstring
Этот код не защищен авторским правом.
*/
void setup() {
// Инициализируем последовательную передачу данных и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ждем, когда подключится последовательный порт (только для Leonardo)
}
// Отсылаем вступительную часть:
Serial.println("\n\nString substring():");
Serial.println();
}
void loop() {
// Задаем строку:
String stringOne = "Content-Type: text/html";
Serial.println(stringOne);
// Функция substring(19) ищет подстроку от указанной позиции (т.е. от 19) и до самого конца:
if (stringOne.substring(19) == "html") {
Serial.println("It's an html file");
}
// Вы также можете искать подстроки, находящиеся в центре строки:
if (stringOne.substring(14,18) == "text") {
Serial.println("It's a text-based file");
}
// Пока условие верно, ничего не делаем:
while(true);
}
См.также
- String object
- StringConstructors
- StringAdditionOperator
- StringIndexOf
- StringAppendOperator
- StringLengthTrim
- StringCaseChanges
- StringReplace
- StringCharacters
- StringStartsWithEndsWith
- StringComparisonOperators
- StringSubstring