加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – 生成随机字符串

发布时间:2020-12-17 07:26:06 所属栏目:百科 来源:网络整理
导读:我知道有很多这些线程,但我是vb.net的新手但我无法编辑给出的信息来做出我真正想要的东西 所以我想要一个函数,它将生成随机字符串,每个字符串包含15-32个字符,每个字符将包含以下字符(不是所有字符串都在同一个字符串中,但其中一些字符串): A-Z A-Z 0-9 到
我知道有很多这些线程,但我是vb.net的新手但我无法编辑给出的信息来做出我真正想要的东西
所以我想要一个函数,它将生成随机字符串,每个字符串包含15-32个字符,每个字符将包含以下字符(不是所有字符串都在同一个字符串中,但其中一些字符串):
A-Z
A-Z
0-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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读