大文字の単語が最初に来なければならない
andrew Net andrey Andrew
Andrew andrew andrey Net
更新:
アンドリュー ネット アンドレイ アンドリュー
アンドリュー アンドレイ アンドリュー ネット
最初に文字 (大文字と小文字を区別しない)、次に文字 (大文字と小文字を区別) の 2 つの連続した基準を指定できます。Array#sort_by
これらに最適です:
%w[andrew Net andrey Andrew].sort_by{|w| [w.downcase, w]}
# => ["Andrew", "andrew", "andrey", "Net"]
%w[andrew Net andrey Andrew].sort_by(&:downcase)
b = a.sort { |x,y| (z = x[0].upcase <=> y[0].upcase) == 0 ? x <=> y : z }