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

时间:2018-08-27 05:32:51

标签: ruby string reverse move

我需要将字符从字符串的左向右移动到两个的组合。输入示例:

"D21635D486450000C1"

此的预期输出是:

"C100004586D43516D2"

非常感谢您的帮助。

到目前为止,我已经拥有了:

str = "D21635D486450000C1"
str.length.times do |i|
 str.insert(i, str[-2-i])
end
puts str

3 个答案:

答案 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"