【发布时间】:2013-09-22 10:24:51
【问题描述】:
我有一段代码可以生成随机字符。问题是,每隔一段时间,它就会返回一个错误:
"startIndex cannot be greater than length of string.
参数名称:startIndex"
如何防止此类错误发生?
这是我的代码:
Friend Function gentCtrlChar()
Dim ran As New Random
Dim alpha As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim alpha2 As String = "ZYXWVUTSRQPONMLKJIHGFEDCBA"
Dim rdm As New Random
Dim genChar As String = ""
For i As Integer = 1 To 52
Dim selChar As Integer = rdm.Next(1, 28)
Dim selChar2 As Integer = rdm.Next(1, 28)
genChar = genChar + "" + alpha.Substring(selChar, 1) + "" + alpha2.Substring(selChar2, 1)
On Error Resume Next
Exit For
Next
Return genChar
End Function
如您所见,我尝试设置“On Error Resume Next”,希望能以某种方式为我解决错误。但可悲的是,它没有做它的工作。还是我以错误的方式或在错误的情况下使用它?
有什么帮助吗?
谢谢!
【问题讨论】:
-
字母表/您的字母字符串中只有 26 个字符。
rdm.Next(1, 28)将上限设置为 28(2 太多)。 -
加上它永远不会得到字符串的第一个字符,因为第一个字符的索引是 0
标签: vb.net string random substring