如何对alphabiticaly的单词排序,但考虑到字母的情况?

时间:2012-04-26 12:54:38

标签: ruby sorting

首都词必须先行 andrew Net andrey Andrew
Andrew andrew andrey Net

UPD:

andrew Net andray Andrew
Andrew andray andrew Net

3 个答案:

答案 0 :(得分:7)

您可以使用两个连续的标准:首先是字母(不区分大小写)然后是字母(使用大小写)。 Array#sort_by非常适合这些:

%w[andrew Net andrey Andrew].sort_by{|w| [w.downcase, w]}
# => ["Andrew", "andrew", "andrey", "Net"]

答案 1 :(得分:0)

b = a.sort { |x,y| (z = x[0].upcase <=> y[0].upcase) == 0 ? x <=> y : z }

答案 2 :(得分:0)

%w[andrew Net andrey Andrew].sort_by(&:downcase)