本文一共介绍了5种生成随机数方式,具体如下:
第一种:转载的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
Public Enum stringtype allstring = 1 '大小写字母 allnumic = 2 '数字 str_num = 3 '大小写字母+数字 str_upper = 4 '大写字母 str_lower = 5 '大写字母 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 |
第二种:网上查找
1
2
3
4
5
|
Public Function GetOAuthNonce() As String ' 得到随机值 Dim result As String = System.Guid.NewGuid().ToString() result = result.Replace( "-" , "" ) Return result.Substring(0, 10) End Function |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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 |
第三种:原来是C#转换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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 |
第四种:利用VB6转换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
Function makeRand( ByVal maxLen As Integer ) As String '生成签名时用随机串 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 |
第五种:直接用VB.NET函数
1
2
|
Dim rand As Random = New System.Random(10)‘这里10就代表是10为 Debug.Print(rand. Next ().ToString) |
原文链接:http://blog.csdn.net/lcp58006478/article/details/8958460
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。