Hasilkan array dari semua huruf dan angka


95

Menggunakan ruby, apakah mungkin membuat array untuk setiap huruf dalam alfabet dan 0-9 dengan mudah?

Jawaban:


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

atau

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

atau

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

( Integer#to_smetode mengonversi angka menjadi string yang mewakilinya dalam sistem angka yang diinginkan )


2
Apakah ada nama tertentu untuk *operator yang digunakan dalam konteks ini? Itu baru bagiku.
Michael Burr

1
@ Michael Burr, operator percikan . Lihat di sini dan di sini
Nakilon

4
tolong tunjukkan dalam jawaban bahwa contoh kode * akan berfungsi di Ruby 1.9 tetapi tidak di Ruby 1.8
Zabba

2
@ Zabba, Anda baru saja menunjukkannya di komentar Anda ..)
Nakilon

3
Pembandingan di bawah Ruby 2.1 [* ('a' .. 'z'), * ('0' .. '9')] sedikit lebih dari dua kali lebih cepat dari (0 ... 36) .map {| i | i.to_s 36} (1,450000s versus 2,26000s di mana n = 100,000). Jika penyertaan huruf besar diinginkan, gunakan yang berikut: [* ('a' .. 'z'), * ('A' .. 'Z'), * ('0' .. '9')]
Viet

34

untuk huruf atau angka Anda dapat membentuk rentang dan mengulanginya. coba ini untuk mendapatkan gambaran umum:

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

untuk mendapatkan array darinya, coba saja yang berikut ini:

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


7

Coba ini:

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

Atau sebagai string:

alphabet_string = alphabet_array.join

3
letters = *('a'..'z')

=> ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]


Meskipun ini mungkin menjawab pertanyaan, tidak ada penjelasan tentang kode Anda. Harap perbarui jawaban Anda untuk memberikan penjelasan tentang apa yang Anda lakukan. Terima kasih!
Miroslav Glamuzina

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.