charAt()

charAt() возвращает символ типа char из объекта String по индексу n (с нуля) — удобно для разбора команд или посимвольной обработки.

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

Описание

Метод charAt() позволяет получить отдельный символ из объекта String по его позиции. Позиции нумеруются с нуля: первый символ строки имеет индекс 0, второй — 1, и так далее. Это удобно, когда нужно разобрать строку посимвольно — например, проверить конкретный символ в принятой команде или найти разделитель.

Синтаксис

myString.charAt(n)

Параметры

  • myString: переменная типа String — строка, из которой извлекается символ.
  • n: переменная типа unsigned int — индекс нужного символа, считая от нуля.

Возвращает

Символ типа char, находящийся на позиции n в строке.

Если индекс n выходит за пределы строки, метод вернёт нулевой символ ('\0'). Это не вызывает ошибки, но может привести к неожиданному поведению — стоит заранее проверять длину строки через myString.length().

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

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

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

  • Индексация начинается с 0, а не с 1. Частая ошибка — запросить charAt(myString.length()), что уже выходит за пределы строки.
  • Перед вызовом charAt() убедитесь, что строка не пустая и индекс n меньше myString.length().
  • Возвращаемый тип — char, поэтому результат можно напрямую сравнивать с символьными литералами: if (myString.charAt(0) == 'A').
  • Если нужно не просто прочитать, а заменить символ на заданной позиции, используйте метод setCharAt().
  • Для последовательного перебора всех символов строки удобнее цикл for с myString.length() в качестве границы, а не ручной перебор индексов.