Arduino:Примеры/StringStartsWithEndsWith: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 21: | Строка 21: | ||
Функциями startsWith() и endsWith() можно воспользоваться, например, для того, чтобы узнать, какая последовательность символов идет в самом начале строки или какой символ расположен в самом конце. Кроме того, их можно использовать вместе с '''«фильтром»''', если искомый символ или подстрока находятся на известной нам позиции. Например, | Функциями startsWith() и endsWith() можно воспользоваться, например, для того, чтобы узнать, какая последовательность символов идет в самом начале строки или какой символ расположен в самом конце. Кроме того, их можно использовать вместе с '''«фильтром»''', если искомый символ или подстрока находятся на известной нам позиции. Например, | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
stringOne = "HTTP/1.1 200 OK"; | stringOne = "HTTP/1.1 200 OK"; | ||
if (stringOne.startsWith("200 OK", 9)) { | if (stringOne.startsWith("200 OK", 9)) { | ||
Строка 30: | Строка 30: | ||
Функционально это то же самое, что и... | Функционально это то же самое, что и... | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
stringOne = "HTTP/1.1 200 OK"; | stringOne = "HTTP/1.1 200 OK"; | ||
if (stringOne.substring(9) == "200 OK") { | if (stringOne.substring(9) == "200 OK") { | ||
Строка 39: | Строка 39: | ||
'''Внимание!''' Если вы ищете позицию, находящуюся за пределами строки, то результаты могут быть не такими, как ожидалось. Например, если в примере выше вписать | '''Внимание!''' Если вы ищете позицию, находящуюся за пределами строки, то результаты могут быть не такими, как ожидалось. Например, если в примере выше вписать | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
stringOne.startsWith("200 OK", 16) | stringOne.startsWith("200 OK", 16) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 45: | Строка 45: | ||
, функция будет искать не в самой строке, а в памяти за ее пределами. Поэтому убедитесь, что индекс, который вы указываете в функциях '''startsWith''' и '''endsWith''' находится в диапазоне между '''0''' и значением, возвращенным функцией length(). | , функция будет искать не в самой строке, а в памяти за ее пределами. Поэтому убедитесь, что индекс, который вы указываете в функциях '''startsWith''' и '''endsWith''' находится в диапазоне между '''0''' и значением, возвращенным функцией length(). | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Строковые функции StartsWith и EndsWith | Строковые функции StartsWith и EndsWith |
Текущая версия от 18:20, 14 мая 2023
Содержание | Знакомство с 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
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino