扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1.随机产生英文字母
奉新ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
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)
'就把数值拷贝到数组里面了
用法 RndString(xx) xx为随机数字长度
比如12位长度的随机字符串 则为 RndString(12)
字符串包含数字和大小写字母,函数如下:
Function RndString(ByVal l As Integer) As String
Randomize()
Dim R, i As Integer
Dim S As Char
Dim returnStr As String
returnStr = ""
'a-z 的ASCII码是:97-122
'A-Z 的ASCII码是:65-90
'0-9 的ASCII码是:48-57
For i = 1 To l
R = Int(Rnd() * 62) '随机生成的字符有大小写字母和数字,共有26个
If R 10 Then '如果小于10,则是数字 数字的ASCII是48-57 对应 随机数字 0-9 所以要将随机数字加48
S = Chr(R + 48) 'Chr 是将把数字按Ascii码转换为对应的字符
ElseIf R 36 Then '如果小于36,则是大写字母 大写字母的ASCII是65-90 对应 随机数字10-35 所以要将随机数字加55
S = Chr(R + 55)
Else '如果大于36,则是小写字母 小写字母的ASCII是97-122 对应 随机数字36-62 所以要将随机数字加61
S = Chr(R + 61)
End If
returnStr = returnStr + S
Next
RndString = returnStr
End Function
最近我说明了用VB NET将字符串转换成字节数组的方法 如果你需要将一个字节数组转换成字符串 可以使用BitConverter ToString或Covert ToBase String方法 下面我提供实例说明如何用上两种方法进行转换
字节数组用法
如果你准备恢复用二进制格式保存的文本 在System Text命名空间中调用适当编码对象的GetString方法
使用System BitConverter类是将一个字节数组转换成字符串的最快捷的方法 这个类为基本数据类型和字节数组之间的转换提供方法 要使用这个方法 使用超载的ToString方法接受一个字节数组为参数 在这种情况下 字符串中包括字节数组的每一个十六进制格式的值 数值间用破折号隔开 使用字符串没有办法自动撤销转换 恢复原始的字节数组 查看列表A中的例子
Listing A
Private Sub ConvertByteArrayToString() Dim btText() As Byte = { } Dim strText As String strText = BitConverter ToString(btText) MessageBox Show(strText) End Sub 通过System Convert类的ToBase String和FromBase Stirng方法 利用Base 编码 也可以把字节数组转换成字符串 在Base 编码中 每个三字节的序列被转换为四个字节 每个Base 编码字符为值域中 个可能值中的一个 查看列表B中的例子
Listing B
Private Sub ConvertByteArrayToString() Dim btText() As Byte = { } Dim strText As String strText = Convert ToBase String(btText) MessageBox Show(strText) End Sub 以上两种方法都可以用来建立一个二进制数据表示法 记住 为了将一个字节数组恢复成真实的文本信息 你必须使用正确的编码类
lishixinzhi/Article/program/net/201311/11708
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流