-3

大文字の単語が最初に来なければならない
andrew Net andrey Andrew
Andrew andrew andrey Net

更新:

アンドリュー ネット アンドレイ アンドリュー
アンドリュー アンドレイ アンドリュー ネット

4

3 に答える 3

7

最初に文字 (大文字と小文字を区別しない)、次に文字 (大文字と小文字を区別) の 2 つの連続した基準を指定できます。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
%w[andrew Net andrey Andrew].sort_by(&:downcase)
于 2016-12-07T19:19:44.583 に答える
0
b = a.sort { |x,y| (z = x[0].upcase <=> y[0].upcase) == 0 ? x <=> y : z }
于 2012-04-27T05:44:38.783 に答える