Welcome

首页 / 网页编程 / ASP.NET / VB.NET生成随机串或随机数字的方法总结

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

第一种:转载的方法
Public Enum stringtypeallstring = 1"大小写字母allnumic = 2"数字str_num = 3"大小写字母+数字str_upper = 4"大写字母str_lower = 5 "大写字母End EnumFunction GenerateRandom(ByVal Length As Integer, ByVal s As stringtype) As StringDim strtemp As String = ""Dim constant() As String = NothingSelect Case sCase stringtype.allnumicstrtemp = "0,1,2,3,4,5,6,7,8,9"constant = strtemp.Split(",")Case stringtype.allstringstrtemp = "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_lowerstrtemp = "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_numstrtemp = "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_upperstrtemp = "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 SelectDim NewRandom As System.Text.StringBuilder = New System.Text.StringBuilder(Length)Dim rd As Random = New Random()Dim i As IntegerFor i = 0 To Length - 1 Step i + 1NewRandom.Append(constant(rd.Next(constant.Length - 1)))NextReturn 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 StringDim 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 - 1num.Append(arrChar(rnd.[Next](0, arrChar.Length)).ToString())NextReturn num.ToString()End Function
第三种:原来是C#转换
Public Function RandCode(ByVal n As Integer) As StringDim 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 - 1num.Append(arrChar(rnd.[Next](0, arrChar.Length)).ToString())NextReturn num.ToString()End Function
第四种:利用VB6转换
Function makeRand(ByVal maxLen As Integer) As String "生成签名时用随机串Dim strNewPass As String = vbNullStringDim lower As LongDim whatsNext As LongDim upper As LongDim intCounter As LongRandomize()For intCounter = 1 To maxLenwhatsNext = Int((1 - 0 + 1) * Rnd() + 0)If whatsNext = 0 Thenupper = 122lower = 100Elseupper = 57lower = 48End IfstrNewPass = strNewPass & Chr(Int((upper - lower + 1) * Rnd() + lower))NextmakeRand = strNewPassEnd Function
第五种:直接用VB.NET函数

Dim rand As Random = New System.Random(10)‘这里10就代表是10为 Debug.Print(rand.Next().ToString)
原文链接:http://blog.csdn.net/lcp58006478/article/details/8958460

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。