2013-03-31 47 views
1

我想用vb.net中的數字製作一個隨機字符發生器,我知道如何製作一個隨機數字發生器,但不能將數字與字母混合在一起。我想要它大約15-20個字符。 類似這樣的: F53Gsfdsj637jfsj5kd8如何製作隨機字符發生器? VB.NET

謝謝!

+0

可能的重複[如何在C#中生成隨機8字符,字母數字字符串?](http://stackoverflow.com/questions/1344221/how-can-i-generate-random-8-character-alphanumeric-strings- in-c) – IAbstract

+0

雖然被引用的問題是C#,但對MSDN的一點研究將向您展示VB.Net中的相同命令。 – IAbstract

回答

5

一旦你有一個隨機數發生器,你大部分都在那裏。從那裏,只需在一組有效字符中選擇一個隨機字符。最簡單的方法是這樣的:

dim validchars as string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" 

dim sb as new StringBuilder() 
dim rand as new Random() 
for i as Integer = 1 to 10 
    dim idx as Integer = rand.Next(0, validchars.Length) 
    dim randomChar as char = validchars(idx) 
    sb.Append(randomChar) 
next i 

dim randomString = sb.ToString() 

當然,清理語法有點,也許使用的字符和長度的恆定值,位數的變量值等

+0

不知道downvote來自哪裏,但如果是因爲我拼寫出了有效的字符,而不是使用Dan在另一個答案中使用的技巧,則可以這樣做。如果這是用於人類可讀的代碼,你可能想排除可能容易混淆的字符,如'Il10O',這在這裏很容易做到。此外,您可以輕鬆地將字符添加到有效列表中,以防您想要幾個特殊字符。此外,代碼中的混淆更少 - 「rand.next(48,122)」永遠不會給你「z」,因爲第二個數字(122)在該方法中是唯一的。 –