Arduino:Примеры/StringStartsWithEndsWith: различия между версиями
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">») |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 123: | Строка 123: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Справочник языка Arduino}} | |||
{{Навигационная таблица/Arduino библиотеки}} | |||
{{Навигационная таблица/Телепорт}} | |||
[[Категория:Пример]] | [[Категория:Пример]] | ||
[[Категория:Примеры]] | [[Категория:Примеры]] | ||
[[Категория:Пример программирования Arduino]] | [[Категория:Пример программирования Arduino]] | ||
[[Категория:Примеры программирования Arduino]] | [[Категория:Примеры программирования Arduino]] |
Версия от 16:11, 5 декабря 2021
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Строковые функции StartsWith и EndsWith [1]
Функции startsWith() и endsWith() позволяют проверить, каким символом или подстрокой начинается или заканчивается строка. Являются частным случаем функции substring().
Необходимое оборудование
- Плата Arduino;
Цепь
Для этого примера никакой цепи выстраивать не нужно, надо просто при помощи USB-соединения подключить друг к другу компьютер и Arduino.
Код
Функциями startsWith() и endsWith() можно воспользоваться, например, для того, чтобы узнать, какая последовательность символов идет в самом начале строки или какой символ расположен в самом конце. Кроме того, их можно использовать вместе с «фильтром», если искомый символ или подстрока находятся на известной нам позиции. Например,
stringOne = "HTTP/1.1 200 OK";
if (stringOne.startsWith("200 OK", 9)) {
Serial.println("Got an OK from the server");
}
Функционально это то же самое, что и...
stringOne = "HTTP/1.1 200 OK";
if (stringOne.substring(9) == "200 OK") {
Serial.println("Got an OK from the server");
}
Внимание! Если вы ищете позицию, находящуюся за пределами строки, то результаты могут быть не такими, как ожидалось. Например, если в примере выше вписать
stringOne.startsWith("200 OK", 16)
, функция будет искать не в самой строке, а в памяти за ее пределами. Поэтому убедитесь, что индекс, который вы указываете в функциях startsWith и endsWith находится в диапазоне между 0 и значением, возвращенным функцией length().
/*
Строковые функции StartsWith и EndsWith
Несколько примеров использования функций startsWith() и endsWith() при работе со строками.
Создан 27 июля 2010,
модифицирован 2 апреля 2012 Томом Иго (Tom Igoe).
http://arduino.cc/en/Tutorial/StringStartsWithEndsWith
Этот код не защищен авторским правом.
*/
void setup() {
// Инициализируем последовательную передачу данных и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ждем подключения порта (требуется только для Leonardo)
}
// Отсылаем вступительную часть:
Serial.println("\n\nString startsWith() and endsWith():");
Serial.println();
}
void loop() {
// Функция startsWith() проверяет, начинается ли строка с искомой подстроки:
String stringOne = "HTTP/1.1 200 OK";
Serial.println(stringOne);
if (stringOne.startsWith("HTTP/1.1")) {
Serial.println("Server's using http version 1.1");
}
// Кроме того, при помощи функции startsWith() можно искать подстроки
// и в глубине строки, но для этого нужен «фильтр»,
// т.е. позиция, с которой, как предполагается, начинается искомая подстрока
// (в данном случае – 9-ая позиция):
stringOne = "HTTP/1.1 200 OK";
if (stringOne.startsWith("200 OK", 9)) {
Serial.println("Got an OK from the server");
}
// Функция endsWith() проверяет, заканчивается ли строка с заданного символа:
String sensorReading = "sensor = ";
sensorReading += analogRead(A0);
Serial.print (sensorReading);
if (sensorReading.endsWith(0)) {
Serial.println(". This reading is divisible by ten");
}
else {
Serial.println(". This reading is not divisible by ten");
}
// Если условие верно, ничего не делаем:
while(true);
}
См.также
- String object
- StringConstructors
- StringAdditionOperator
- StringIndexOf
- StringAppendOperator
- StringLengthTrim
- StringCaseChanges
- StringReplace
- StringCharacters
- StringStartsWithEndsWith
- StringComparisonOperators
- StringSubstring
Внешние ссылки
- Страницы с устаревшим атрибутом подсветки синтаксиса «enclose»
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino