更改字符串以包含 a-z 字符:
Dim s As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
更改循环以创建随机数量的字符:
Dim cnt As Integer = r.Next(15, 33)
For i As Integer = 1 To cnt
请注意,上边界Next
方法是排他的,所以Next(15, 33)
为您提供一个范围从 15 到 32 的值。
使用字符串的长度从中选择一个字符:
Dim idx As Integer = r.Next(0, s.Length)
由于您要创建随机字符串,而不是单个随机字符串,因此不应在函数内创建随机数生成器。如果您在时间上过于接近地调用该函数两次,您最终会得到相同的随机字符串,因为随机生成器是使用系统时钟进行播种的。因此,您应该将随机生成器发送到函数中:
Function RandomString(r As Random)
所以,总而言之:
Function RandomString(r As Random)
Dim s As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
Dim sb As New StringBuilder
Dim cnt As Integer = r.Next(15, 33)
For i As Integer = 1 To cnt
Dim idx As Integer = r.Next(0, s.Length)
sb.Append(s.Substring(idx, 1))
Next
return sb.ToString()
End Function
使用示例:
Dim r As New Random
Dim strings As New List<string>()
For i As Integer = 1 To 10
strings.Add(RandomString(r))
Next