用ruby将2个破折号插入此字符串的最短方法是什么?

Shp*_*ord 5 ruby

这是字符串:04046955104021109

我需要将其格式化为:040469551-0402-1109

用ruby做最短/最有效的方法是什么?

Har*_*tum 17

两个简单的插件可以正常工作:

example_string.insert(-9, '-').insert(-5, '-')
Run Code Online (Sandbox Code Playgroud)

负数表示您从字符串的末尾开始计算.如果您愿意,也可以从头开始计算:

example_string.insert(9, '-').insert(14, '-')
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,这是一种修改方法.在运行这些行之后,`example_string`现在是''040469551-0402-1109',而不是原来的''04046955104021109'.我实际上有点惊讶,方法名称不是`insert!`. (2认同)

nic*_*des 6

怎么样

s = "04046955104021109"
"#{s[0,9]}-#{s[9,4]}-#{s[13, 4]}"
Run Code Online (Sandbox Code Playgroud)