VB.NET生成隨機串或隨機數(shù)字的方法總結(jié)
本文一共介紹了5種生成隨機數(shù)方式,具體如下:
第一種:轉(zhuǎn)載的方法
Public Enum stringtype allstring = 1 '大小寫字母 allnumic = 2 '數(shù)字 str_num = 3 '大小寫字母+數(shù)字 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
第二種:網(wǎng)上查找
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#轉(zhuǎn)換
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轉(zhuǎn)換
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函數(shù)
Dim rand As Random = New System.Random(10)‘這里10就代表是10為 Debug.Print(rand.Next().ToString)
原文鏈接:http://blog.csdn.net/lcp58006478/article/details/8958460
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
vs2010出現(xiàn)error MSB8008的解決方法
這篇文章主要為大家詳細介紹了vs2010問題error MSB8008: 指定的平臺工具集(v110)未安裝或無效的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06asp.net訪問Access數(shù)據(jù)庫溢出錯誤
asp.net訪問Access數(shù)據(jù)庫溢出錯誤,大家會的幫忙解決下啊。2009-07-07Asp.Net程序目錄下文件夾或文件操作導致Session失效的解決方案
這篇文章主要介紹了Asp.Net程序目錄下文件夾或文件操作導致Session失效的解決方案,需要的朋友可以參考下2017-06-06asp.net 使用Response.Filter 過濾非法詞匯
一般信息發(fā)布網(wǎng)站,論壇等均具有實現(xiàn)非法詞匯過濾功能,即當用戶錄入非法詞匯時,進行替換,使其無法顯示到頁面上,針對此種功能,通常采用的時,在讀取時,在讀到非法詞匯后,進行替換。2010-03-03