您的位置:首页 > 编程语言 > Ruby

Sort an array alphabetically in Ruby but with capitalised words at the end

2015-04-30 09:07 836 查看
1、["Apple",
"banana",
"Zebra",
"orange"].sort_by(&:swapcase)


Probably
not a concern, but ["iPhone",
"item"].sort_by(&:swapcase) #=> ["item", "iPhone"]
,
["IRB",
"It"].sort_by(&:swapcase) #=> ["It", "IRB"]





2、Yet another way:
arr = %w{ Apple banana Zebra Camel iPhone waffles Pancakes }
# => ["Apple", "banana", "Zebra", "Camel", "iPhone", "waffles", "Pancakes"]

arr.sort.rotate(arr.count { |s| s[/^[A-Z]/] })
# => ["banana", "iPhone", "waffles", "Apple", "Camel", "Pancakes", "Zebra"]


We have:
a = arr.sort
# => ["Apple", "Camel", "Pancakes", "Zebra", "banana", "iPhone", "waffles"]

nbr_capitalized_words = arr.count { |s| s[/^[A-Z]/] }
#=> 4

a.rotate(nbr_capitalized_words)
#=> ["banana", "iPhone", "waffles", "Apple", "Camel", "Pancakes", "Zebra"]

3、["banana", "Banana","orange", "Apple", ].sort_by{|x| [x[0].upcase==x[0] ? 1:0,x] }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐