Arduino:Примеры/StringLengthTrim
Поддержать проект | Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Содержание
Строковые функции Length и Trim [1]
Функция length() позволяет рассчитать длину строки, а trim() – как бы обрезать ее, удалив те или иные символы. В данном примере показывается, как эти функции работают.
Необходимое оборудование
- Плата Arduino;
Цепь
Для этого примера цепь строить не нужно. Просто подключите Arduino к компьютеру (через USB).
Код
Функция length() возвращает значение с длиной строки. Этот метод может понадобиться во многих случаях. Например, вам нужно убедиться, что длина строки составляет не более 140 символов, чтобы уместить ее в текстовое сообщение. Это можно сделать следующим образом:
1 /*
2 Вычисление длины строки при помощи функции Length
3
4 Несколько примеров того, как функция length() может пригодиться при работе со строками.
5 Откройте окно Serial Monitor и начните отсылать символы, чтобы увидеть результат.
6
7 Создан 1 августа 2010 Томом Иго (Tom Igoe)
8
9 http://arduino.cc/en/Tutorial/StringLengthTrim
10
11 Этот код не защищен авторским правом.
12 */
13 String txtMsg = ""; // строка для входящего текста
14 int lastStringLength = txtMsg.length(); // предыдущая длина строки
15
16 void setup() {
17 // Инициализируем последовательную передачу данных и ждем открытия порта:
18 Serial.begin(9600);
19 while (!Serial) {
20 ; // ждем, когда подключится порт (требуется только для Leonardo)
21 }
22
23 // Отсылаем вступительную часть:
24 Serial.println("\n\nString length():");
25 Serial.println();
26 }
27
28 void loop() {
29 // Добавляем к строке все входящие символы:
30 while (Serial.available() > 0) {
31 char inChar = Serial.read();
32 txtMsg += inChar;
33 }
34
35 // Выводим сообщение и отмечаем, если оно изменилось:
36 if (txtMsg.length() != lastStringLength) {
37 Serial.println(txtMsg);
38 Serial.println(txtMsg.length());
39 // Если строка длиннее 140 символов, жалуемся:
40 if (txtMsg.length() < 140) {
41 Serial.println("That's a perfectly acceptable text message");
42 }
43 else {
44 Serial.println("That's too long for a text message.");
45 }
46 // Отмечаем длину строки для следующего прохода через цикл:
47 lastStringLength = txtMsg.length();
48 }
49 }
Функция trim() полезна, когда вы знаете, что на переднем или заднем краях строки разместилось несколько пробельных символов, и вы хотите от них избавиться. Пробельные символы – это те, которые занимают определенное место, но их не видно. В их число входят одинарный пробел (32 в ASCII-кодировке), Tab (9), вертикальный Tab (11), символ перевода страницы (12), символ разрыва строки (13) и символ новой строки (10). Пример ниже демонстрирует строку с пробельными символами – до и после «обрезки».
1 /*
2 Использование функций Length и Trim
3 Несколько примеров применения функций length() и trim() при работе со строками.
4
5 Создан 27 июля 2010,
6 Модифицирован 2 апреля 2012 Томом Иго (Tom Igoe).
7
8 http://arduino.cc/en/Tutorial/StringLengthTrim
9
10 Этот код не защищен авторским правом.
11 */
12
13 void setup() {
14 // Инициализируем последовательную передачу данных и ждем, когда порт откроется:
15 Serial.begin(9600);
16 while (!Serial) {
17 ; // ждем подключения последовательного порта (нужно только для Leonardo)
18 }
19
20 // Отсылаем вступительную часть:
21 Serial.println("\n\nString length() and trim():");
22 Serial.println();
23 }
24
25 void loop() {
26 // Задаем строку с пустыми символами в конце (т.е. с пробельными символами):
27 String stringOne = "Hello! ";
28 Serial.print(stringOne);
29 Serial.print("<--- end of string. Length: ");
30 Serial.println(stringOne.length());
31
32 // Делаем строке «обрезание»:
33 stringOne.trim();
34 Serial.print(stringOne);
35 Serial.print("<--- end of trimmed string. Length: ");
36 Serial.println(stringOne.length());
37
38 // Пока условие верно, ничего не делаем:
39 while(true);
40 }
См.также
- String object
- StringConstructors
- StringAdditionOperator
- StringIndexOf
- StringAppendOperator
- StringLengthTrim
- StringCaseChanges
- StringReplace
- StringCharacters
- StringStartsWithEndsWith
- StringComparisonOperators
- StringSubstring
Внешние ссылки