-3

大写的单词必须先走
andrew Net andrey Andrew
Andrew andrew andrey Net

升级版:

安德鲁·网安德雷·
安德鲁·安德鲁·安德鲁·安德鲁·网

4

3 回答 3

7

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

%w[andrew Net andrey Andrew].sort_by{|w| [w.downcase, w]}
# => ["Andrew", "andrew", "andrey", "Net"]
于 2012-04-26T12:59:37.367 回答
0
b = a.sort { |x,y| (z = x[0].upcase <=> y[0].upcase) == 0 ? x <=> y : z }
于 2012-04-27T05:44:38.783 回答
0
%w[andrew Net andrey Andrew].sort_by(&:downcase)
于 2016-12-07T19:19:44.583 回答