如何替换Ruby中的一系列字符?

时间:2017-11-20 03:01:11

标签: ruby-on-rails ruby string replace

使用Ruby,如何替换字符串中的一系列字符?例如,给定字符串

hellothere

如果我想用索引位置2到5替换字符“#”来替换字符串

he####here

我该怎么做?

1 个答案:

答案 0 :(得分:2)

你可以得到一个字符串范围并通过设置新字符乘以最后一个索引加上1减去第一个索引来替换它:

def replace_in_string(str, replace, start, finish)
  str[start..finish] = replace * (finish + 1 - start)
  str
end

p replace_in_string 'hellothere', '#', 2, 5
# "he####here"

将该方法添加到String类中会减少一个参数:

class String
  def replace_in_string(replace, start, finish)
    self[start..finish] = replace * (finish + 1 - start)
    self
  end
end

p 'hellothere'.replace_in_string '#', 2, 5
# "he####here"