2011-01-31 30 views

回答

115
[*('a'..'z'), *('0'..'9')] # doesn't work in Ruby 1.8 

('a'..'z').to_a + ('0'..'9').to_a # works in 1.8 and 1.9 

(0...36).map{ |i| i.to_s 36} 
+2

在此上下文中使用的`*`運算符是否有特定的名稱?這對我來說是新的。 – 2011-01-31 01:38:28

28

對於字母或數字,你可以形成範圍並迭代它們。試試這個得到一個總體思路:

("a".."z").each { |letter| p letter } 

獲取數組出來,只是嘗試以下操作:

("a".."z").to_a 
6

你也可以這樣來做:

'a'.upto('z').to_a + 0.upto(9).to_a 
2
myarr = [*?a..?z]  #generates an array of strings for each letter a to z 
myarr = [*?a..?z] + [*?0..?9] # array of strings a-z and 0-9 
0

你可以只是這樣做:

("0".."Z").map do |letter| 
    puts letter 
end 
0

試試這個:

alphabet_array = [*'a'..'z', *'A'..'Z', *'0'..'9'] 

或者作爲字符串:

alphabet_string = alphabet_array.join