如何在Ruby中替换一定范围内的字符?

4
使用Ruby,如何替换字符串中的一段字符?例如,给出字符串:
hellothere

如果我想将索引位置为2到5(含)的字符替换为“#”,以得到一个字符串

he####here

我该怎样做这件事?
1个回答

5
您可以通过获取字符串范围并将其替换为设置新字符的方式来实现,新字符应乘以最后一个索引加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类中呢? - user7055375
1
@Natalia 注意,仅仅因为你可以这样做,并不意味着你应该这样做。强烈反对向核心类添加方法。 - user229044
@SebastianPalma,感谢您的编辑。我应该使用哪个项目路径来添加到String类(例如lib/string.rb或类似的路径)? - user7055375

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接