我需要将字符从字符串的左向右移动到两个的组合。输入示例:
"D21635D486450000C1"
此的预期输出是:
"C100004586D43516D2"
非常感谢您的帮助。
到目前为止,我已经拥有了:
str = "D21635D486450000C1"
str.length.times do |i|
str.insert(i, str[-2-i])
end
puts str
答案 0 :(得分:2)
"D21635D486450000C1".chars.each_slice(2).to_a.reverse.join
#⇒ "C100004586D43516D2"
或在最后一步使用join(' ')
在切片之间留有空格或其他内容。
也:
str = "D21635D486450000C1"
(0..str.length-1).step(2).map { |i| [str[-i-2], str[-i-1]] }.join
#⇒ "C100004586D43516D2"
答案 1 :(得分:0)
"D21635D486450000C1"
.reverse.gsub(/(.)(.)/, '\2\1')
#=> "C100004586D43516D2"
"D21635D486450000C1"
.reverse.gsub(/../, &:reverse)
#=> "C100004586D43516D2"
答案 2 :(得分:0)
"D21635D486450000C1".scan(/.{1,2}/).reverse.join
#=> "C100004586D43516D2"