setCharAt()
setCharAt() заменяет один символ в строке String по индексу, не меняя её длину — удобно для точечной правки без пересборки строки.
Полная статья
Описание
Метод setCharAt() позволяет заменить один символ в строке типа String на другой, указав его позицию. Длина строки при этом не меняется: если передать индекс, выходящий за пределы текущей длины строки, метод просто ничего не сделает.
Это удобно, когда нужно точечно исправить один символ без пересборки всей строки — например, заменить разделитель, поправить регистр или обновить одну цифру в шаблонной строке.
Синтаксис
myString.setCharAt(index, c)
Параметры
myString: переменная типаString— строка, в которой нужно заменить символindex: позиция символа (нумерация с нуля), который нужно заменитьc: новый символ, который будет записан на место указанной позиции
Возвращает
Ничего.
Где применяется
- Обновление одного символа в строке фиксированного формата, например замена разделителя
':'на'-'в строке времени. - Приведение конкретного символа к верхнему или нижнему регистру без пересоздания строки.
- Формирование текстовых шаблонов, где нужно подставить одиночный символ в заранее известную позицию.
- Обфускация или маскировка части строки, например замена цифр на
'*'.
Практические замечания
- Индексы начинаются с нуля: первый символ строки находится на позиции
0, последний — на позицииmyString.length() - 1. - Если передать
indexбольше или равныйmyString.length(), метод не выполнит никаких действий и не сообщит об ошибке — это молчаливый «промах». Перед вызовом стоит проверить длину строки, если индекс вычисляется динамически. - Метод изменяет строку на месте, не создавая новый объект
String— это экономит память по сравнению с конкатенацией. - Тип параметра
c—char. Если передать числовой литерал, например65, будет записан символ с ASCII-кодом 65, то есть'A'. - Длина строки после вызова остаётся прежней:
setCharAt()не может добавить символ за пределами существующего содержимого строки.