我有一个像这样的字符串数组:
[“巴西(62)”,“巴勒斯坦领土占领(6)”,“马其顿(2)”, “德国(6)”]
我想用最高价值对它们进行排序,但这让我很难过。我尝试过各种奇怪,精彩(无用)的东西,如:
cont.sort! { |it| it.scan(/\d+/).to_s.to_i}
答案 0 :(得分:6)
sort_by {|e| e[/\d+/].to_i }.reverse
应该做的伎俩。您可以以更有效和更优雅的方式编写此文章(请参阅注释),如下所示:
sort_by {|e| -e[/\d+/].to_i }
请注意-
。
您可以使用排序:
sort {|a, b| b[/\d+/].to_i <=> a[/\d+/].to_i }
修改的
String#[]已在评论中提出。