Назад к вопросам
Junior
103
questionbank

Можно ли изменить определённый символ в строке?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Строки в Go неизменяемы. Нельзя напрямую изменить отдельный символ в существующей строке.

Чтобы получить измененную строку, нужно создать новую:

  1. Преобразовать строку в срез рун ([]rune).
  2. Изменить элемент в срезе.
  3. Преобразовать срез рун обратно в строку.
// s - исходная строка
s := "hello"

// Преобразуем строку в []rune
r := []rune(s)

// Изменяем руну по индексу
r[0] = 'ц' // Заменяем 'h' на 'ц'

// Преобразуем обратно в строку
newString := string(r)

// newString будет "цеllo"

Альтернативный способ, менее гибкий, но возможный для простых случаев: конкатенация строк.

// s - исходная строка
s := "hello"

// Создаем новую строку, объединяя подстроки и нужный символ
newString := string(s[0]) + "ц" + s[2:] // Пример: меняем второй символ

// newString будет "hцllo"