给定以下字符串:
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)