vb.net随机产生英文字母的代码
6个回答
展开全部
1.随机产生英文字母
Randomize() '功 能:初始化随机数发生器
Me.txt1.Text = Chr(Asc("a") + Int(Rnd() * 26))
'Rnd 函数返回小于 1 但大于或等于 0 的值。
'0 <= Rnd() * 26 < 26 是含小数位的数
'Int(Rnd() * 26) 转换为整型,就是0~25的随机数
'Asc("a") 得到a的ASCii数值,是整数97(A是65)
'a~z的ASCii为97~122 ,即为a~z之间的字母为97加(0~25)
'Asc("a") + Int(Rnd() * 26)为97到122的随机数
'Chr()又可以起到转换成字符的功能,Chr(97)表示a (a转换成数值又是Asc("a")=97)
'Chr(Asc("a") + Int(Rnd() * 26))就是a~z的随机数了
Randomize() '再次初始化随机数发生器
Me.txt2.Text = Chr(Asc("A") + Int(Rnd() * 26)) '这里是A~Z的随机数
'也可以换这种写法
Randomize()
Me.txt1.Text = Chr(Int((26 * Rnd()) + 97)) '这里是a~z的随机数
'这是在你知道ASCII码的情况之下(a~z为97~122,A~Z为65~90)
'Rnd()为0~0.9999999.....的随机数
' 26 * Rnd()为0~25.9999...的随机数
'Int((26 * Rnd())为0~25的随机数
'Int((26 * Rnd()) + 97)为97~122的随机数
'Chr(Int((26 * Rnd()) + 97))就是a~z的随机数了
Randomize()
Me.txt2.Text = Chr(Int((26 * Rnd()) + 65)) '这里是A~Z的随机数
'至于同时在一处随机大写或小写,ASCII码的数字又不挨在一起(65-90,97-122),比较麻烦。想写的话,你可以自己想一下怎么办
2.数字怎样转换成ASCII码所对应的字母
Chr()函数将数字转换成ASCII对应的字母,Asc()函数将字母根据ASCII表转换成数字
Chr(97)表示a (a转换成数值又是Asc("a")=97)
3.加到数组,你可以放在一个for循环里
比如
Dim arylst1 As New ArrayList
Dim arr1() As String '数组
Dim str1 As String
For i As Integer = 1 To 15 '比如我想要15个随机字母
Randomize()
str1 = Chr(Int((26 * Rnd()) + 65)) '这里是A~Z的随机数
arylst1.Add(str1)
Next
ReDim arr1(arylst1.Count - 1) '这里是为了比较动态,可以只改变 i 的范围来决定要多少个随机字母
'当然也可以写死,在前面直接定义为 arr1(14),下次要改的时候就要改定义的地方和i的范围,改两个地方
arylst1.CopyTo(arr1)
'就把数值拷贝到数组里面了
Randomize() '功 能:初始化随机数发生器
Me.txt1.Text = Chr(Asc("a") + Int(Rnd() * 26))
'Rnd 函数返回小于 1 但大于或等于 0 的值。
'0 <= Rnd() * 26 < 26 是含小数位的数
'Int(Rnd() * 26) 转换为整型,就是0~25的随机数
'Asc("a") 得到a的ASCii数值,是整数97(A是65)
'a~z的ASCii为97~122 ,即为a~z之间的字母为97加(0~25)
'Asc("a") + Int(Rnd() * 26)为97到122的随机数
'Chr()又可以起到转换成字符的功能,Chr(97)表示a (a转换成数值又是Asc("a")=97)
'Chr(Asc("a") + Int(Rnd() * 26))就是a~z的随机数了
Randomize() '再次初始化随机数发生器
Me.txt2.Text = Chr(Asc("A") + Int(Rnd() * 26)) '这里是A~Z的随机数
'也可以换这种写法
Randomize()
Me.txt1.Text = Chr(Int((26 * Rnd()) + 97)) '这里是a~z的随机数
'这是在你知道ASCII码的情况之下(a~z为97~122,A~Z为65~90)
'Rnd()为0~0.9999999.....的随机数
' 26 * Rnd()为0~25.9999...的随机数
'Int((26 * Rnd())为0~25的随机数
'Int((26 * Rnd()) + 97)为97~122的随机数
'Chr(Int((26 * Rnd()) + 97))就是a~z的随机数了
Randomize()
Me.txt2.Text = Chr(Int((26 * Rnd()) + 65)) '这里是A~Z的随机数
'至于同时在一处随机大写或小写,ASCII码的数字又不挨在一起(65-90,97-122),比较麻烦。想写的话,你可以自己想一下怎么办
2.数字怎样转换成ASCII码所对应的字母
Chr()函数将数字转换成ASCII对应的字母,Asc()函数将字母根据ASCII表转换成数字
Chr(97)表示a (a转换成数值又是Asc("a")=97)
3.加到数组,你可以放在一个for循环里
比如
Dim arylst1 As New ArrayList
Dim arr1() As String '数组
Dim str1 As String
For i As Integer = 1 To 15 '比如我想要15个随机字母
Randomize()
str1 = Chr(Int((26 * Rnd()) + 65)) '这里是A~Z的随机数
arylst1.Add(str1)
Next
ReDim arr1(arylst1.Count - 1) '这里是为了比较动态,可以只改变 i 的范围来决定要多少个随机字母
'当然也可以写死,在前面直接定义为 arr1(14),下次要改的时候就要改定义的地方和i的范围,改两个地方
arylst1.CopyTo(arr1)
'就把数值拷贝到数组里面了
展开全部
''' <summary>
''' 密码生成
''' </summary>
''' <param name="intLength">密码长度</param>
''' <remarks></remarks>
Public Function RandomPasswd(ByVal intLength As Integer) As String
Dim strPasswd As String = ""
Dim intNum As Integer = 0
Dim objRandom As Random = New Random
For i As Integer = 0 To intLength - 1
intNum = objRandom.Next(3)
If intNum = 0 Then
strPasswd += Chr(objRandom.Next(10) + 48).ToString()
ElseIf intNum = 1 Then
strPasswd += Chr(objRandom.Next(26) + 65).ToString()
Else
strPasswd += Chr(objRandom.Next(26) + 97).ToString()
End If
Next
Return strPasswd
End Function
''' 密码生成
''' </summary>
''' <param name="intLength">密码长度</param>
''' <remarks></remarks>
Public Function RandomPasswd(ByVal intLength As Integer) As String
Dim strPasswd As String = ""
Dim intNum As Integer = 0
Dim objRandom As Random = New Random
For i As Integer = 0 To intLength - 1
intNum = objRandom.Next(3)
If intNum = 0 Then
strPasswd += Chr(objRandom.Next(10) + 48).ToString()
ElseIf intNum = 1 Then
strPasswd += Chr(objRandom.Next(26) + 65).ToString()
Else
strPasswd += Chr(objRandom.Next(26) + 97).ToString()
End If
Next
Return strPasswd
End Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有人贴代码了.我讲讲原理
1、从提问内容来看楼主已经知道ascii代码概念,我就不多啰嗦了。
2、既然ascii和数字是等价的,那么只要我们可以随机获取这些数字也就相当于随机获取了字母
3、任何主流语言都有一个函数,功能就是获取随机数字的。
4、根据2和3 我想您已经知道了思路,就是利用随机函数获取随机数字,不过这里有一个地方要注意,随机获取的数字一定要在字母范围之内。
5、根据随机获取的数字转换成字母就行了,这个在各种主流语言里面都有。
1、从提问内容来看楼主已经知道ascii代码概念,我就不多啰嗦了。
2、既然ascii和数字是等价的,那么只要我们可以随机获取这些数字也就相当于随机获取了字母
3、任何主流语言都有一个函数,功能就是获取随机数字的。
4、根据2和3 我想您已经知道了思路,就是利用随机函数获取随机数字,不过这里有一个地方要注意,随机获取的数字一定要在字母范围之内。
5、根据随机获取的数字转换成字母就行了,这个在各种主流语言里面都有。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-29
展开全部
A=65 Z=90a=97 z=122
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用以下函数
Convert.ToChar()
Convert.ToChar()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询