视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
VB.NET生成随机串或随机数字的方法总结
2020-11-27 22:36:22 责编:小采
文档


本文一共介绍了5种生成随机数方式,具体如下:

第一种:转载的方法

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

第二种:网上查找

Public Function GetOAuthNonce() As String ' 得到随机值
 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

第三种:原来是C#转换

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转换

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函数

 Dim rand As Random = New System.Random(10)‘这里10就代表是10为
 Debug.Print(rand.Next().ToString)

原文链接:http://blog.csdn.net/lcp580078/article/details/58460

下载本文
显示全文
专题