用法 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
以下代码在text1里生成100个大写字母。
Dim a, i As Integer
Dim ch As String
Text1.Text = "" '清空
For i = 1 To 100
a = Rnd() * 25 '生成0~25的随机整数,实际上VB的随机数很差的。如果可能的话,最好自己再写一个随机数生成函数
ch = Chr(a + 65) '把得出的整数与大写字母A的ASCII码值相加并由ASCII码表转换成相应的大写字母
'如果要小写的话,就把65改成 97
Text1.Text = Text1.Text ch '添加生成的字母到text1中
Next i
1、大写字母对应的ASCII码的范围是65~89,因此随机生成65~89之间的数字,生成对应的大写字母即可;
2、打开VB6.0,新建一个标准exe工程,界面上新建一个按钮和一个文本框;
3、按钮代码如下:
Private Sub Command1_Click()
Text1.Text = ""
Dim n As Integer
Randomize
n = Int(Rnd * 25) + 65
Text1.Text = Chr(n)
End Sub
4、运行工程,生成随机的大写字母;
1、首先打开VB程序,新建一个工程,如图所示。
2、这里我们选择“标准EXE”,单击“确定”按钮。
3、该软件的界面还是比较简洁的,左边是常用的工具箱,右边是相关的属性栏目。先把我们要制作的软件命名,如图,在“caption”后面输入“随机选号器”。
4、选择“commandbutton”工具,在目标区域用鼠标拖动画出一个按钮,在属性面板输入按钮上显示的文字。步骤如图中标识所示。
5、用“textbox”工具在合适位置画出文本框区域,用来显示你选号的结果,如图所示。
6、用鼠标双击刚才插入的按钮,输入代码即可。
Imports System.Text.RegularExpressions
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim a As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim g() As Char = a.ToCharArray
Dim MyRandom As New Random
Dim bs As String = ""
For i = 1 To 20
bs = g(MyRandom.Next(0, g.GetUpperBound(0) + 1))
Next
Dim gs() As String = (From mt As Match In Regex.Matches(bs, "[A-Z]") Select mt.Value).ToArray
System.Array.Sort(gs)
gs = (From mt As Match In Regex.Matches(Join(gs, ""), "([A-Z])\1*") Select mt.Value).ToArray
Dim g_len() As Integer
g_len = (From mt As Match In Regex.Matches(Join(gs, ""), "([A-Z])\1*") Select mt.Length).ToArray ' 使用数组元素作为计数器g_len
System.Array.Sort(g_len, gs)
Label1.Text = "出现次数最多的字母:" gs(gs.GetUpperBound(0)).Substring(0, 1) " 共出现" g_len(g_len.GetUpperBound(0)) "次" vbCrLf "没有出现的字母是:" Join(a.Split(bs.ToCharArray), "")
End Sub
End Class
说个思路,
1.写一个字符数组将所有的字母字符存放起来如
a[52]={a,b,c,d.....z,A,B,C,....Z}
2.用随机函数产生器产生一个随机数
c#
里面好像是random,可以带参数,指定产生多大的一个随机数,这里最大的是51,即每次产生一个从0到51的数,
3.利用随机数作为数组下标得到数组里对应的字符,OK
这只是产生了一个字母,如果想产生多个随机字母,则在一个循环里做2-3步