我打印了以下数组[12,16,5,9,11,5,4]
:12,16,5,9,11,5,4
。
我想要打印:4,5,11,9,5,16,12
当我array.reverse
打印时:
4,5,11,9,5,61,21
它扭转了个别数字 - 我知道如何阻止它?
答案 0 :(得分:72)
irb(main):001:0> a = [12,16,5,9,11,5,4]
=> [12, 16, 5, 9, 11, 5, 4]
irb(main):002:0> a.reverse
=> [4, 5, 11, 9, 5, 16, 12]
我没看到你所看到的。
编辑:扩展Ben注意到的内容,您可能正在翻转字符串。
irb(main):005:0> "12,16,5,9,11,5,4".reverse
=> "4,5,11,9,5,61,21"
如果必须以这种方式反转字符串,则应执行以下操作:
irb(main):008:0> "12,16,5,9,11,5,4".split(",").reverse.join(",")
=> "4,5,11,9,5,16,12"
答案 1 :(得分:14)
听起来你的数组实际上是一个String
答案 2 :(得分:2)
您是否正在尝试撤销列表?如果是这样,那么:
>> arr = [12,16,5,9,11,5,4]
=> [12, 16, 5, 9, 11, 5, 4]
>> arr.reverse!
=> [4, 5, 11, 9, 5, 16, 12]
>> arr
=> [4, 5, 11, 9, 5, 16, 12]
否则:
>> arr_rev=arr.reverse
=> [4, 5, 11, 9, 5, 16, 12]
>> arr_rev
=> [4, 5, 11, 9, 5, 16, 12]
答案 3 :(得分:2)
如果您的数组是实际字符串,请尝试:
"12,16,5,9,11,5,4".split(',').reverse
希望能解决你的问题!
答案 4 :(得分:0)
arr1 = [12,16,5,9,11,5,4]
i = 0
arr2 = []
arr1.length.times do
arr2 << arr1.reverse[i]
i += 1
end
p arr2
>>[4, 5, 11, 9, 5, 16, 12]