给定以下字符串:

numbers =  "4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"

我想把这个按数字顺序排列。这是我正在使用的代码
numbers.split(' ').sort

但是,这将返回以下内容:
["-214", "-3", "-6", "-64", "0", "1", "29", "4", "4", "5", "54", "542", "6"]

为什么sort会这样理想情况下,数组的第一个整数应该是-214,第二个整数应该是542我怎样才能做到这一点?
期望输出:
[“-214”、“-64”、“-6”、“-3”、“0”、“1”、“4”、“4”、“5”、“6”、“26”、“54”、“542”]

最佳答案

露比的sort默认值,当在字符串上操作时,按字典顺序排序,正如它在这里所做的那样。如果要按数字顺序排序,则需要执行以下操作:

numbers.split.sort_by(&:to_i)

09-25 16:49