无法在Ruby代码中对数组进行排序

时间:2013-01-05 22:25:41

标签: ruby sorting country

以下代码发现它无法对数组进行排序。

由于某些原因,最后一个项目“奥兰群岛”位于该阵列的最后一个,但它应位于“阿富汗”和“阿尔巴尼亚”之间。 这种情况仅在使用如下的iso3166时发生,但在刮擦时不会发生。有什么想法吗?

$ which ruby
~/.rvm/rubies/ruby-1.9.3-p362/bin/ruby

$ cat test.rb
#!/usr/bin/env ruby
# coding: utf-8

require 'iso3166'

countries = ISO3166::Country::all.map do |c|
  c.first
end

p countries.sort

$ ruby test.rb
["Afghanistan", "Albania", ... etc ... "Zambia", "Zimbabwe", "Aland Islands"]

1 个答案:

答案 0 :(得分:4)

以下是我的评论作为答案:

'A'.ord => 65 

'Z'[0].ord => 90

'Åland Islands'[0].ord => 197