VB.NET怎么生成随机串或随机数字
创始人
2024-11-28 07:23:27
0次

本文一共介绍了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)

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...