Ruby: существует ли простая однострочная строка для замены части строки между двумя индексами другой строкой?

#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.