[英]How to sort an array using only the first 5 characters of a string in Ruby?
因此,假设我有一个字符串数组,例如:[“ 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"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.