このような6桁の英数字の文字列を返すvb.netのランダム関数があります。
Public Function rand() As String
Dim rng As Random = New Random
Dim sb As New StringBuilder
' Selection of pure numbers sequence or mixed one
Dim pureNumbers = rng.Next(1, 11)
If pureNumbers < 7 Then
' Generate a sequence of only digits
Dim number As Integer = rng.Next(1, 1000000)
Dim digits As String = number.ToString("000000")
For i As Integer = 1 To 6
Dim idx As Integer = rng.Next(0, digits.Length)
sb.Append(digits.Substring(idx, 1))
Next
Else
' Generate a sequence of digits and letters
Dim s As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
For i As Integer = 1 To 6
Dim idx As Integer = rng.Next(0, 36)
sb.Append(s.Substring(idx, 1))
Next
End If
Return sb.ToString()
End Function
0
問題は、またはO
または1
またはなどを返すときI
に{"1", "I", "O", "0", "5", "S", "7"}
これらの文字を「A」に置き換えて、最終的なランダム文字列を返す必要があります。