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

setCharAt()

setCharAt() заменяет один символ в строке String по индексу, не меняя её длину — удобно для точечной правки без пересборки строки.

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

Описание

Метод setCharAt() позволяет заменить один символ в строке типа String на другой, указав его позицию. Длина строки при этом не меняется: если передать индекс, выходящий за пределы текущей длины строки, метод просто ничего не сделает.

Это удобно, когда нужно точечно исправить один символ без пересборки всей строки — например, заменить разделитель, поправить регистр или обновить одну цифру в шаблонной строке.

Синтаксис

myString.setCharAt(index, c)

Параметры

  • myString: переменная типа String — строка, в которой нужно заменить символ
  • index: позиция символа (нумерация с нуля), который нужно заменить
  • c: новый символ, который будет записан на место указанной позиции

Возвращает

Ничего.

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

  • Обновление одного символа в строке фиксированного формата, например замена разделителя ':' на '-' в строке времени.
  • Приведение конкретного символа к верхнему или нижнему регистру без пересоздания строки.
  • Формирование текстовых шаблонов, где нужно подставить одиночный символ в заранее известную позицию.
  • Обфускация или маскировка части строки, например замена цифр на '*'.

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

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