问题
我们在日常进行数据测试中,常常会需要模拟一些数据,如单位、姓名、成绩、得分等,有时候为了想一个姓名,会浪费一点点时间,所以我就设计这样的的一个命令菜单,把常用的姓氏和名字字符组成起来,自从设计好这个,妈妈就不用担心我找不到姓名数据了。 |
---|
思路:
我在网上取了104个常用的姓氏,再取了264个个常的名字的字,组成数组,再进行取数据生成2字姓名或3字姓名, |
---|
操作演示
全屏横屏观看效果更佳
点击命令,选择你要生成数据的区域,确定,生成不重复的姓名
代码
代码语言:javascript复制 'n个姓名
Public Function GetRandNameS(myN As Integer) As Array
Dim idNumbers As New HashSet(Of String)()
While idNumbers.Count < myN
Dim id As String = GetOneName()
If Not idNumbers.Contains(id) Then
idNumbers.Add(id)
End If
End While
Dim tn As Integer = 0
Dim ArrOut(idNumbers.Count - 1) As String
For Each id As String In idNumbers
ArrOut(tn) = id
tn = 1
Next
Return ArrOut
End Function
'###随机生成一个姓名,由于在网上复制的字符可能有空格,所以要清除空格输出
Public Function GetOneName() As String
Dim firstLong As Long = firstNameList.Length
Dim lastLong As Long = lastNameList.Length
Dim nameStr As String = firstNameList(random.Next(0, firstNameList.Length))
Dim lastN As Integer = random.Next(1, 15)
If lastN >= 2 Then
For i As Integer = 0 To 1
nameStr = lastNameList(random.Next(0, lastNameList.Length))
Next
Else
nameStr = lastNameList(random.Next(0, lastNameList.Length))
End If
Return nameStr.Replace(" ", "")
End Function
代码解析
GetOneName()函数用于生一个姓名,firstName是姓氏一个字random.Next(1, 15)生成1-14的数字,可能是1位数,就会生成1字名,如果是2位数就生成2字的名,这一步是考虑到1字名的情况,大约15个就会生成一个1字名。nameStr=firstName lastName=姓 名=姓名GetRandNameS(myN As Integer) As Array用HashSet哈希列表取不重复,参数myN是要生成N个姓名,返回值是一个数组Array,再foreach就可以输出啦 |
---|
对你有帮助请转发给大家免费学习
努力更新中...