Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby中反转数组的顺序_Ruby - Fatal编程技术网

在ruby中反转数组的顺序

在ruby中反转数组的顺序,ruby,Ruby,我有以下数组[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 它反转了单个数字-知道我怎么才能阻止它吗?听起来你的数组实际上是一个字符串 irb(main):001:0> a = [12,16,5,9,11,5,4] => [12, 16, 5, 9, 11, 5, 4] irb(main):002:0> a.rever

我有以下数组
[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

它反转了单个数字-知道我怎么才能阻止它吗?

听起来你的数组实际上是一个字符串

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"

您是否正在尝试在适当的位置反转列表?如果是,则应:

>> 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]

如果数组是实际字符串,请尝试以下操作:

"12,16,5,9,11,5,4".split(',').reverse
希望能解决你的问题

arr1=[12,16,5,9,11,5,4]
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]
i=0 arr2=[] arr1.length.times do arr2>[4,5,11,9,5,16,12]
嗯<代码>>[12,16,5,9,11,5,4]。反向=>[4,5,11,9,5,16,12]您的代码的结果是:
irb(main):002:0>“12,16,5,9,11,5,4”。拆分(',')。连接。反向
=“4511956121”
。也就是说,它不起作用。谢谢!我刚刚把它修好了。OP可以使用
array.inspect
查看它是一个数组还是一个字符串。在答案周围多加一点上下文,这比简单地发布代码要好。请记住,只有一行代码就可以选择最佳答案。所以解释您的8行程序。感谢您提供此代码片段,它可能会提供一些有限的短期帮助。通过说明为什么这是一个很好的问题解决方案来正确解释它的长期价值,并将使它对未来有其他类似问题的读者更有用。请在您的回答中添加一些解释,包括您所做的假设。