繁体   English   中英

如何在Ruby中仅使用字符串的前5个字符对数组进行排序?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM