因此,假设我有一个字符串数组,例如: ["74712 Don", "48342 Cindy", "50912 Nick"] 并且我想按名称前面的数字对它们进行排序。我将如何仅按每个元素的前 5 个字符排序(同时将它们评估为数字)?谢谢
假设您希望按字符串的前导数字排序,您可以执行以下操作:
["74712 Don", "48342 Cindy", "50912 Nick"].sort_by(&:to_i)
#=> ["48342 Cindy", "50912 Nick", "74712 Don"]
这是有效的,因为String#to_i 会忽略“超出有效数字末尾的无关字符”。
如果数组的某些元素可能有五个以上的前导数字,但只考虑前五个数字,则可以使用
["74712 Don", "48342 Cindy", "209124 Nick"].sort_by { |s|
s[0,5].to_i }
#=> ["209124 Nick", "48342 Cindy", "74712 Don"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句