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()в качестве границы, а не ручной перебор индексов.