Ruby:如何替换字符串中的奇数/偶数事件

时间:2012-12-19 06:53:43

标签: ruby

input = AA-AA-AA-AA-AA-AA

我如何

  • :
  • 替换奇数(第1,第3,第5)次
  • .
  • 替换偶数(第2,第4)次

3 个答案:

答案 0 :(得分:5)

input.gsub("-").with_index(1){|_, i| i.odd? ? ":" : "."}
# => "AA:AA.AA:AA.AA:AA"

答案 1 :(得分:1)

这是一种方式,虽然它不是您可能正在寻找的单线:

input = 'AA-AA-AA-AA-AA-AA'
input.count('-').times do |i|
  replacement = i.even? ? ':' : '.'
  input.sub!('-', replacement)
end
input
# => "AA:AA.AA:AA.AA:AA"

答案 2 :(得分:0)

input = "AA-AA-AA-AA-AA-AA".gsub("AA-AA", ":-.")

也许?