gpt4 book ai didi

vb.net - 生成随机字符串

转载 作者:行者123 更新时间:2023-12-02 09:18:50 24 4
gpt4 key购买 nike

我知道有很多这样的线程,但我对 vb.net 很陌生,但我无法编辑给出的源代码来制作我真正想要的内容所以我想要一个函数,它将生成随机字符串,每个字符串包含 15-32 个字符,每个字符串将具有以下字符(并非全部在同一字符串,但其中一些字符):A-Za-z0-9这是我到目前为止的代码

Functon RandomString()
Dim s As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
Dim r As New Random
Dim sb As New StringBuilder
For i As Integer = 1 To 8
Dim idx As Integer = r.Next(0, 35)
sb.Append(s.Substring(idx, 1))
Next
return sb.ToString()
End Function

最佳答案

更改字符串以包含 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

关于vb.net - 生成随机字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15484742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com