VB. NET Summary of Methods for Generating Random Strings or Random Numbers
- 2021-08-21 20:14:38
- OfStack
This article 1 introduces five ways to generate random numbers, as follows:
Type 1: Method of reprinting
Public Enum stringtype
allstring = 1 ' Upper and lower case letters
allnumic = 2 ' Figures
str_num = 3 ' Upper and lower case letters + Figures
str_upper = 4 ' Capital letters
str_lower = 5 ' Capital letters
End Enum
Function GenerateRandom(ByVal Length As Integer, ByVal s As stringtype) As String
Dim strtemp As String = ""
Dim constant() As String = Nothing
Select Case s
Case stringtype.allnumic
strtemp = "0,1,2,3,4,5,6,7,8,9"
constant = strtemp.Split(",")
Case stringtype.allstring
strtemp = "a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,D,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,X,Y,Z"
constant = strtemp.Split(",")
Case stringtype.str_lower
strtemp = "a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z"
constant = strtemp.Split(",")
Case stringtype.str_num
strtemp = "a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,D,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,X,Y,Z,0,1,2,3,4,5,6,7,8,9"
constant = strtemp.Split(",")
Case stringtype.str_upper
strtemp = "A,B,C,E,F,D,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z"
constant = strtemp.Split(",")
End Select
Dim NewRandom As System.Text.StringBuilder = New System.Text.StringBuilder(Length)
Dim rd As Random = New Random()
Dim i As Integer
For i = 0 To Length - 1 Step i + 1
NewRandom.Append(constant(rd.Next(constant.Length - 1)))
Next
Return NewRandom.ToString()
End Function
Type 2: Search on the Internet
Public Function GetOAuthNonce() As String ' Get random values
Dim result As String = System.Guid.NewGuid().ToString()
result = result.Replace("-", "")
Return result.Substring(0, 10)
End Function
Public Function RandCode(ByVal n As Integer) As String
Dim arrChar As Char() = New Char() {"a"c, "b"c, "d"c, "c"c, "e"c, "f"c, _
"g"c, "h"c, "i"c, "j"c, "k"c, "l"c, _
"m"c, "n"c, "p"c, "r"c, "q"c, "s"c, _
"t"c, "u"c, "v"c, "w"c, "z"c, "y"c, _
"x"c, "0"c, "1"c, "2"c, "3"c, "4"c, _
"5"c, "6"c, "7"c, "8"c, "9"c, "A"c, _
"B"c, "C"c, "D"c, "E"c, "F"c, "G"c, _
"H"c, "I"c, "J"c, "K"c, "L"c, "M"c, _
"N"c, "Q"c, "P"c, "R"c, "T"c, "S"c, _
"V"c, "U"c, "W"c, "X"c, "Y"c, "Z"c}
Dim num As New StringBuilder()
Dim rnd As New Random(DateTime.Now.Millisecond)
For i As Integer = 0 To n - 1
num.Append(arrChar(rnd.[Next](0, arrChar.Length)).ToString())
Next
Return num.ToString()
End Function
Type 3: Originally C # conversion
Public Function RandCode(ByVal n As Integer) As String
Dim arrChar As Char() = New Char() {"a"c, "b"c, "d"c, "c"c, "e"c, "f"c, _
"g"c, "h"c, "i"c, "j"c, "k"c, "l"c, _
"m"c, "n"c, "p"c, "r"c, "q"c, "s"c, _
"t"c, "u"c, "v"c, "w"c, "z"c, "y"c, _
"x"c, "0"c, "1"c, "2"c, "3"c, "4"c, _
"5"c, "6"c, "7"c, "8"c, "9"c, "A"c, _
"B"c, "C"c, "D"c, "E"c, "F"c, "G"c, _
"H"c, "I"c, "J"c, "K"c, "L"c, "M"c, _
"N"c, "Q"c, "P"c, "R"c, "T"c, "S"c, _
"V"c, "U"c, "W"c, "X"c, "Y"c, "Z"c}
Dim num As New StringBuilder()
Dim rnd As New Random(DateTime.Now.Millisecond)
For i As Integer = 0 To n - 1
num.Append(arrChar(rnd.[Next](0, arrChar.Length)).ToString())
Next
Return num.ToString()
End Function
Type 4: Using VB6 conversion
Function makeRand(ByVal maxLen As Integer) As String ' Use random strings when generating signatures
Dim strNewPass As String = vbNullString
Dim lower As Long
Dim whatsNext As Long
Dim upper As Long
Dim intCounter As Long
Randomize()
For intCounter = 1 To maxLen
whatsNext = Int((1 - 0 + 1) * Rnd() + 0)
If whatsNext = 0 Then
upper = 122
lower = 100
Else
upper = 57
lower = 48
End If
strNewPass = strNewPass & Chr(Int((upper - lower + 1) * Rnd() + lower))
Next
makeRand = strNewPass
End Function
Type 5: Use the VB. NET function directly
Dim rand As Random = New System.Random(10) 'Here 10 It means that it is 10 For
Debug.Print(rand.Next().ToString)
Original link: http://blog.csdn.net/lcp58006478/article/details/8958460