回答
你可以兩個連續的標準:首先是字母(不區分大小寫),然後是字母(與大小寫)。 Array#sort_by
非常適合這些:
%w[andrew Net andrey Andrew].sort_by{|w| [w.downcase, w]}
# => ["Andrew", "andrew", "andrey", "Net"]
** andrew Net androy Andrew> Andrew androy andrew Net **這是怎麼回事? – Tensho 2012-04-26 13:28:17
@Tensho'%w [andrew Net androy Andrew] .sort_by {| w | [w.downcase,w]}'讓你'[「Andrew」,「andrew」,「androy」,「Net」]',而不是'Andrew androy andrew Net'。 – 2012-04-27 06:03:04
b = a.sort { |x,y| (z = x[0].upcase <=> y[0].upcase) == 0 ? x <=> y : z }
解釋和答案更有幫助 – 2012-04-27 12:59:09
%w[andrew Net andrey Andrew].sort_by(&:downcase)
我不知道紅寶石,但我會通過解析字符的ASCII或UTF和訂購去。 – 2012-04-26 12:57:20
你的意思是隻有當一個字母是相同的或者是什麼時,一個字母大寫都可以使用? – 2012-04-26 12:58:54
你有我的-1。 'androy'在'andrew'之前是沒有辦法的,所以清理你的問題,無論如何,我的回答應該指向你正確的方向。 – 2012-04-26 16:52:35