#ruby #string
#ruby #строка
Вопрос:
Допустим, у меня есть:
a = "Stack Overflow"
Есть ли функция, в которой я могу сделать что-то вроде:
> a.replace!(3, 10, " hello ")
> a
=> "Sta hello flow"
или что-то подобное?
по сути, указанная функция, о которой я не знаю, удалит весь текст между указанными индексами, а затем вставит указанный текст после начального индекса.
Ответ №1:
Попробуйте это:
a = "Stack Overflow"
a[3..9] = " hello "
a
Комментарии:
1. На самом деле это нужно для
3..9
того, чтобы получить точный выходной текст, который вы хотели2. Или
a[3...10] = " hello "
, если вы предпочитаете видеть 3 и 10. «…» создает диапазон, исключающий последнее число.3. @glenn — здорово, я этого не знал!
Ответ №2:
Непроверенный код:
a[3,10] = "hello" ?
Комментарии:
1. Нет, это заменяет 10 символов, начиная с индекса 3.