VB.NET生成随机串或随机数字的方法总结
本文一共介绍了5种生成随机数方式,具体如下:
第一种:转载的方法
PublicEnumstringtype
allstring=1'大小写字母
allnumic=2'数字
str_num=3'大小写字母+数字
str_upper=4'大写字母
str_lower=5'大写字母
EndEnum
FunctionGenerateRandom(ByValLengthAsInteger,ByValsAsstringtype)AsString
DimstrtempAsString=""
Dimconstant()AsString=Nothing
SelectCases
Casestringtype.allnumic
strtemp="0,1,2,3,4,5,6,7,8,9"
constant=strtemp.Split(",")
Casestringtype.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(",")
Casestringtype.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(",")
Casestringtype.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(",")
Casestringtype.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(",")
EndSelect
DimNewRandomAsSystem.Text.StringBuilder=NewSystem.Text.StringBuilder(Length)
DimrdAsRandom=NewRandom()
DimiAsInteger
Fori=0ToLength-1Stepi+1
NewRandom.Append(constant(rd.Next(constant.Length-1)))
Next
ReturnNewRandom.ToString()
EndFunction
第二种:网上查找
PublicFunctionGetOAuthNonce()AsString'得到随机值
DimresultAsString=System.Guid.NewGuid().ToString()
result=result.Replace("-","")
Returnresult.Substring(0,10)
EndFunction
PublicFunctionRandCode(ByValnAsInteger)AsString
DimarrCharAsChar()=NewChar(){"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}
DimnumAsNewStringBuilder()
DimrndAsNewRandom(DateTime.Now.Millisecond)
ForiAsInteger=0Ton-1
num.Append(arrChar(rnd.[Next](0,arrChar.Length)).ToString())
Next
Returnnum.ToString()
EndFunction
第三种:原来是C#转换
PublicFunctionRandCode(ByValnAsInteger)AsString
DimarrCharAsChar()=NewChar(){"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}
DimnumAsNewStringBuilder()
DimrndAsNewRandom(DateTime.Now.Millisecond)
ForiAsInteger=0Ton-1
num.Append(arrChar(rnd.[Next](0,arrChar.Length)).ToString())
Next
Returnnum.ToString()
EndFunction
第四种:利用VB6转换
FunctionmakeRand(ByValmaxLenAsInteger)AsString'生成签名时用随机串 DimstrNewPassAsString=vbNullString DimlowerAsLong DimwhatsNextAsLong DimupperAsLong DimintCounterAsLong Randomize() ForintCounter=1TomaxLen whatsNext=Int((1-0+1)*Rnd()+0) IfwhatsNext=0Then upper=122 lower=100 Else upper=57 lower=48 EndIf strNewPass=strNewPass&Chr(Int((upper-lower+1)*Rnd()+lower)) Next makeRand=strNewPass EndFunction
第五种:直接用VB.NET函数
DimrandAsRandom=NewSystem.Random(10)‘这里10就代表是10为 Debug.Print(rand.Next().ToString)
原文链接:http://blog.csdn.net/lcp58006478/article/details/8958460
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。