[英]Visual Basic .substring error
我是VB的新手,但是以下代码存在一些问题。
Dim random As String = "asfdgasfdgasfdgasfd11"
Dim length As Integer = Nothing
length = random.Length
Console.WriteLine(random.Length)
Console.WriteLine(length)
Console.WriteLine()
Console.WriteLine()
Console.ReadLine()
If length <= 20 Then
Console.WriteLine(random.Substring(0, length))
ElseIf length <= 40 Then
Console.WriteLine(random.Substring(0, 20))
Console.WriteLine(random.Substring(20, length))
End If
Console.ReadLine()
错误:
“ mscorlib.dll中发生类型'System.ArgumentOutOfRangeException'的未处理异常
附加信息:索引和长度必须引用字符串“
我认为错误是由于( 20
, length
))而发生的。 我尝试将长度分配给变量,因此除非尝试使用特定数量的字符,否则程序不会崩溃。
我正在尝试使用任何给定长度的变量,如果该变量大于20个字符,则每行仅打印20个字符。
附加信息:索引和长度必须引用字符串中的位置
这才是重点。 在第二个WriteLine中,您要求打印从第20个字符开始的random
字符串(起始索引正常,有21个字符),但随后要求打印21个字符(长度= 21)。
是的,startindex + length = 41,它超出了字符串限制
你可以尝试用
Console.WriteLine(random.Substring(20, length - 20))
或引入一个while循环,一次打印20个字符
length = random.Length
Console.WriteLine(random.Length)
Console.WriteLine(length)
Console.WriteLine()
Console.WriteLine()
Console.ReadLine()
Dim curStart = 0
Dim loopCounter = 0
while(curStart < random.Length)
Console.WriteLine(random.Substring(curStart, System.Math.Min(20, length - 20 * loopCounter)))
curStart = curStart + 20
loopCounter = loopCounter + 1
End While
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.