如何将字符从字符串的右移到左
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"
我需要以两个组合的形式从字符串的左侧向右侧移动字符。示例输入是:
"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"