Главная chevron_right Переменные и константы chevron_right Типы данных chevron_right [] (element access)

[] (element access)

Оператор [] обращается к символу строки String по индексу — читает его или заменяет, как myString[0] = 'A'.

Полная статья

Описание

Оператор [] позволяет обратиться к любому символу строки String напрямую — по его позиции. Позиции начинаются с нуля: первый символ строки имеет индекс 0, второй — 1 и так далее. Это стандартное для программирования поведение, и важно не забывать о нём, чтобы не промахнуться мимо нужного символа.

Синтаксис

char thisChar = myString[n]

Параметры

  • myString: строковый объект типа String, из которого извлекается символ.
  • n: целочисленный индекс символа, отсчёт с нуля.
  • thisChar: переменная типа char, в которую сохраняется полученный символ.

Возвращает

Символ строки на позиции n. Результат идентичен тому, что возвращает метод charAt(n), — это два равнозначных способа получить один и тот же символ.

Где применяется

  • Посимвольный разбор входящих команд из Serial — например, когда нужно проверить первую букву строки, чтобы понять, что сделать дальше.
  • Поиск конкретного символа в строке вручную, если стандартных методов String недостаточно.
  • Формирование нового сообщения путём перебора символов исходной строки в цикле.
  • Простая валидация формата: проверить, что символ на определённой позиции является цифрой или разделителем.

Практические замечания

  • Всегда проверяйте, что индекс n меньше myString.length() — иначе вы выйдете за пределы строки и получите непредсказуемый результат. Это не вызовет ошибку компиляции, но может привести к чтению случайных данных из памяти.
  • Если строка пустая (length() == 0), любое обращение через [] некорректно.
  • Оператор [] можно использовать не только для чтения, но и для записи: myString[0] = 'A' заменит первый символ. Будьте аккуратны с такими изменениями на месте.
  • Для перебора всех символов строки удобен цикл for с условием i < myString.length().
  • Если символ нужен только для сравнения или вывода, можно не сохранять его в отдельную переменную thisChar, а использовать выражение прямо в условии или вызове функции.