如何将字符从字符串的右移到左

How to move characters from right to left of string

我需要以两个组合的形式从字符串的左侧向右侧移动字符。示例输入是:

"D21635D486450000C1"

预期的输出是:

"C100004586D43516D2"

非常感谢任何帮助。

到目前为止我有这个:

str = "D21635D486450000C1"
str.length.times do |i|
 str.insert(i, str[-2-i])
end
puts str
"D21635D486450000C1"
.reverse.gsub(/(.)(.)/, '')
#=> "C100004586D43516D2"

"D21635D486450000C1"
.reverse.gsub(/../, &:reverse)
#=> "C100004586D43516D2"
"D21635D486450000C1".scan(/.{1,2}/).reverse.join
#=> "C100004586D43516D2"
"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"