Arduino:Примеры/StringSubstring: различия между версиями
Myagkij (обсуждение | вклад) (→Цепь) |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 21: | Строка 21: | ||
Функция substring(), в которой задан всего один параметр, ищет от заданной позиции и до конца строки. То есть подразумевается, что искомая подстрока длится до самого конца строки. Например, | Функция substring(), в которой задан всего один параметр, ищет от заданной позиции и до конца строки. То есть подразумевается, что искомая подстрока длится до самого конца строки. Например, | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
String stringOne = "Content-Type: text/html"; | String stringOne = "Content-Type: text/html"; | ||
Строка 31: | Строка 31: | ||
Этот код верен, тогда как этот: | Этот код верен, тогда как этот: | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
String stringOne = "Content-Type: text/html"; | String stringOne = "Content-Type: text/html"; | ||
Строка 43: | Строка 43: | ||
При этом substring() с двумя параметрами ищет от одной заданной позиции и до другой. Например, | При этом substring() с двумя параметрами ищет от одной заданной позиции и до другой. Например, | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
String stringOne = "Content-Type: text/html"; | String stringOne = "Content-Type: text/html"; | ||
Строка 56: | Строка 56: | ||
{{Внимание1|Убедитесь, что заданные вами позиции находятся в пределах строки, иначе такой код может повлечь непредвиденные результаты. Эту ошибку бывает особенно трудно найти, если в substring() указано два параметра – когда первый из них меньше длины строки, а второй нет.}} | {{Внимание1|Убедитесь, что заданные вами позиции находятся в пределах строки, иначе такой код может повлечь непредвиденные результаты. Эту ошибку бывает особенно трудно найти, если в substring() указано два параметра – когда первый из них меньше длины строки, а второй нет.}} | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Строковая функция Substring | Строковая функция Substring |
Текущая версия от 21:42, 25 марта 2023
Содержание | Знакомство с 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() при работе со строками.
Создан 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
Внешние ссылки
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