-2
我必須生成類似於ABC-4F-ABC-8D-ABC(其中:ABC是隨機3字符串,4F,8D是隨機十六進制數字)格式的唯一引用。 我是一個新的紅寶石,所以請原諒我,如果這是重複的(沒發現迄今爲止類似的smth)。我怎樣才能做到這一點?生成特殊的安全ID
我必須生成類似於ABC-4F-ABC-8D-ABC(其中:ABC是隨機3字符串,4F,8D是隨機十六進制數字)格式的唯一引用。 我是一個新的紅寶石,所以請原諒我,如果這是重複的(沒發現迄今爲止類似的smth)。我怎樣才能做到這一點?生成特殊的安全ID
您需要的所有內容都內置於Ruby中。
您可以創建一個數組,它是你的字母,然後從中挑選sample
s到形成你的字符串:
ALPHA = ('A'..'Z').to_a # might also want to add numbers or lower-case letters?
HEX = ('A'..'F').to_a + (0..9).to_a
def generate_string(alphabet, length)
# pick random elements from the alphabet and concatenate
# until length is reached.
# key method is `sample` which selects a random element from
# an array (the alphabet, in your case)
# you can try it on irb like so:
# [1, 2, 3].sample
end
然後,你可以這樣做:
def generate_unique_reference
"#{generate_string(ALPHA, 3)}-#{generate_string(HEX, 2)}-....."
end
我會離開它給你完成練習(聽起來像功課,不?)
謝謝)))就是這樣! –
爲什麼這種格式?也許一個簡單的'SecureRandom.uuid'會是一個更好的選擇? – spickermann
它在我的任務中被提及。我想我應該建立一些像我自己的隨機發生器一樣來構建零件,然後將它們加在一起? –
歡迎使用堆棧溢出。你的問題爲時過早。您需要嘗試,然後在遇到問題時提出詳細的問題。請閱讀「[問]」,包括鏈接的頁面。一旦你的代碼遇到問題,請閱讀「[mcve]」。 「[Stack Overflow用戶需要多少研究工作?](http://meta.stackoverflow.com/a/261593/128421)」也將解釋我們的期望,當你問。 –