生成任意长度的随机字符串

有很多种方案:

方案一:

Public Function GenRndString(ByVal strNum As Long) As String
        If strNum <= 0 Then
            Return ""
            Exit Function
        End If

        Dim i As Long
        Dim intLength As Integer
        GenRndString = ""
        Const STRINGSOURCE = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
        intLength = Len(STRINGSOURCE) - 1

        Randomize()
        For i = 1 To strNum
            GenRndString = GenRndString & Mid(STRINGSOURCE, Int(Rnd() * intLength + 1), 1)
        Next
        Return GenRndString
    End Function


传入参数strNum = 128

TxtRadStr.Text = GenRndString(128) ' 生成128位随机字符串

测试输出:mZX30h40nWC6FAZGBN5bk5wI2L2X2VSnpVPO9bA9wEXYP7Mu9iKtfp7M5WfG0Am0nywt3YS1Emc4e3UmiUbOHl3PSurYWQWB5jrcbm564x6duD8OJRY6U9tvaJHRUZqq

方案二:

Function GenRndString1(ByVal strNum As Integer) As String
        Dim RndNum, i As Integer
        Dim RndChar As Char
        Dim outStr As String
        outStr = ""
        ' Description 
        '###0-9 的ASCII码是:48-57 ####
        '###A-Z 的ASCII码是:65-90 ####
        '###a-z 的ASCII码是:97-122 ###
        '//End/
        Randomize()
        For i = 1 To strNum
            RndNum = Int(Rnd() * 62) '随机生成的字符有大小写字母和数字,共有26个
            If RndNum < 10 Then      '如果小于10,则是数字 数字的ASCII是48-57 对应 随机数字 0-9 所以要将随机数字加48
                RndChar = Chr(RndNum + 48) 'Chr 是将把数字按Ascii码转换为对应的字符
            ElseIf RndNum < 36 Then  '如果小于36,则是大写字母 大写字母的ASCII是65-90 对应 随机数字10-35 所以要将随机数字加55
                RndChar = Chr(RndNum + 55)
            ElseIf RndNum > 36 Then  '如果大于36,则是小写字母 小写字母的ASCII是97-122 对应 随机数字36-62 所以要将随机数字加61
                RndChar = Chr(RndNum + 61)
            End If
            outStr = outStr + RndChar
        Next
        GenRndString1 = outStr
    End Function

传入参数strNum = 128

TxtRadStr.Text = GenRndString1(128) ' 生成128位随机字符串

测试输出:
CHeBIn0eZARoqINJkfQ37wYwoyOvvnoEH9itL0BXUZlNfJ0SERNERWJF8JUGh0SQGXUm8FY9YonzZIyoKdMMRFpXnt8BNpXXZEbssnGy9fEhTWRvR1193QGJCT0gUXCG

方案三:

PS:这个方案只能生成大写字母和数字的随机字符

Public Function GenRndString2(ByVal RndWidth As Integer) As String
        Dim RndNum As Integer
        Dim RndChar As String
        Dim outRndStr As String = String.Empty
        Dim i As Integer = 0

        Dim random As System.Random = New Random()

        For i = 0 To RndWidth
            RndNum = random.Next(255)
            If (RndNum Mod 2 = 0) Then
                RndChar = Chr(48 + (RndNum Mod 10))
            Else
                RndChar = Chr(65 + (RndNum Mod 26))
            End If

            outRndStr += RndChar.ToString()
        Next
        Return outRndStr
    End Function

传入参数strNum = 128

TxtRadStr.Text = GenRndString2(128) ' 生成128位随机字符串

测试输出:

246NRZ2206VJ2LXT868T4884R0B2JV0VB4T8NPX6H2X4P8D22BJ260D46Z4HT462R08HNZ224F2FN4XHBDX4L882PL2N6PJ2J8VP0VFRV42422PT2J2246B22FR4HN6FR

 

方案四:(方案三的修改)

PS:这个方案只能生成小写字母和数字的随机字符

Public Function GenRndString2(ByVal RndWidth As Integer) As String
        Dim RndNum As Integer
        Dim RndChar As String
        Dim outRndStr As String = String.Empty
        Dim i As Integer = 0

        Dim random As System.Random = New Random()

        For i = 0 To RndWidth
            RndNum = random.Next(255)
            If (RndNum Mod 2 = 0) Then
                RndChar = Chr(48 + (RndNum Mod 10))
            Else
                RndChar = Chr(97 + (RndNum Mod 26))
            End If

            outRndStr += RndChar.ToString()
        Next
        Return outRndStr
    End Function

传入参数strNum = 128

TxtRadStr.Text = GenRndString2(128) ' 生成128位随机字符串

测试输出:

0624t0pffz008l04dn242244ffrx4p662r6ppdx848286p0hj64f2jx82bp00r024n2f0b0zp8nl0022hfjjn680p88njj84v4b22nh86x64v4h6p4bhd2x2d2l2f86fh

 

上面都是实际测试的结果!


### 回答1: import random def generate_random_string(length): letters = "0123456789" result_str = ''.join(random.choice(letters) for i in range(length)) return result_strprint(generate_random_string(10)) ### 回答2: 要用Python写生成随机位数字符串的代码,可以使用random模块中的choice函数和string模块中的ascii_letters和digits常量。 首先,导入需要的模块: import random import string 然后,设置字符串的位数n,例如n = 8代表生成8位数的随机字符串。 接下来,定义一个函数generate_random_string(n),其中n为字符串的位数。在函数内部,使用random模块的choice函数从ascii_letters和digits中随机选择字符,重复n次并拼接生成字符串。 def generate_random_string(n): random_string = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(n)) return random_string 最后,调用generate_random_string函数,并传入n的值,得到生成随机字符串。 例如,如果要生成8位数的随机字符串,调用generate_random_string(8),即可得到一个由数字和字母组成的8位字符串,如"5gB8s2eR"。 生成随机字符串的代码就是这样的。 ### 回答3: 可以使用Python的random模块和字符串的join方法来生成随机位数的字符串。下面是一个示例代码: ```python import random import string def generate_random_string(length): # 生成包含所有大小写字母和数字的字符集合 characters = string.ascii_letters + string.digits # 生成指定长度随机字符串 random_string = ''.join(random.choice(characters) for _ in range(length)) return random_string length = 10 # 指定字符串长度 random_string = generate_random_string(length) print(random_string) ``` 在上述代码中,首先导入了random模块和string模块。然后定义了一个名为generate_random_string的函数,该函数接受一个参数length,用于指定生成字符串长度。 函数内部首先定义了一个包含所有大小写字母和数字的字符集合(例如"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"),然后使用random.choice方法从字符集合中随机选择一个字符,并通过字符串的join方法将这些字符连接起来,重复length次,生成指定长度随机字符串。 最后,在代码的最后通过调用generate_random_string函数并传入指定长度生成一个随机字符串,并将其打印出来。 以上代码可以用于生成任意长度随机字符串,并且字符集合也可以根据需要进行修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值