以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]生成的随机数全是英文字母? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=187612) |
-- 作者:2425004926 -- 发布时间:2023/7/30 21:48:00 -- [求助]生成的随机数全是英文字母? 生成的随机数全是英文字母? Rand.NextString(6) 这样生成的随机数有字母有数字,是否有更简单的方法让生成的随机数全是英文字母?
|
-- 作者:有点蓝 -- 发布时间:2023/7/30 21:59:00 -- 把所有字母放到一个字符串里,随机从这个字符串里取6个字符 |
-- 作者:chen37280600 -- 发布时间:2023/7/30 23:27:00 -- chatgpt回复 要在VB.NET中生成指定长度的纯字母的随机字符串,可以使用随机数生成器和字符集来实现。下面是一个示例代码,它将生成一个指定长度的纯字母随机字符串: ```vb.net Imports System.Text Imports System.Security.Cryptography Module Module1 Sub Main() Dim length As Integer = 10 \' 指定字符串长度 Dim randomString As String = GenerateRandomString(length) Console.WriteLine(randomString) End Sub Private Function GenerateRandomString(ByVal length As Integer) As String Const chars As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" Dim result As New StringBuilder(length) Dim rng As New RNGCryptoServiceProvider() Dim data(length - 1) As Byte rng.GetBytes(data) For i As Integer = 0 To length - 1 Dim rndIndex As Integer = data(i) Mod chars.Length result.Append(chars(rndIndex)) Next Return result.ToString() End Function End Module ``` 这个代码使用了 `RNGCryptoServiceProvider` 类来生成安全的随机字节序列,然后根据字节序列中的值从字符集中选择字符来构建随机字符串。字符集 `chars` 包含所有的大写字母和小写字母。 请注意,由于 `RNGCryptoServiceProvider` 生成的是真正的随机字节,因此生成的随机字符串是高度随机的,并且比简单的伪随机算法更安全。 |
-- 作者:2425004926 -- 发布时间:2023/7/31 7:45:00 -- 谢谢chen37280600! 谢谢蓝总! 明白了!
|
-- 作者:2425004926 -- 发布时间:2023/7/31 8:22:00 -- 代码如下: Dim x As String
Dim zm As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" For i As Integer = 1 To 6 Dim rn As Integer = Rand.Next(0, 51) x += zm.Chars(rn) Next Output.Show(x) |
-- 作者:2425004926 -- 发布时间:2023/7/31 8:28:00 -- 打包成自定义函数 ‘函数名RandLetter Dim x As String Dim zm As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" For i As Integer = 1 To Args(0) Dim rn As Integer = Rand.Next(0, 51) x += zm.Chars(rn) Next Return x 调用 Dim x As String = Functions.Execute("RandLetter", 10) ’第一个参数是字母随机数的位数
Output.Show(x) |