嗨,我有一个像这样的字符串:
CurrentDate-[8]>15&CurrentDate-[8]<1000&[11]=HANWHA
我想将其切成3个字符串,例如:
CurrentDate-[8]>15
CurrentDate-[8]<1000
[11]=HANWHA
这是我削减公式的功能
Public Shared Function Cut(formula As String, numberOfConditions As Integer) As String()
Dim Parts(numberOfConditions) As String
Dim startPoint As Integer = 0
Dim curCondition As Integer = 0
For i As Integer = 0 To formula.Length() - 1
If formula(i) = "&" Then
Parts(curCondition) = formula.Substring(startPoint, i - 1) ' here error occures when curCond = 1
curCondition += 1
startPoint = i + 1
End If
Next
Parts(curCondition) = formula.Substring(startPoint)
Return Parts
End Function
在错误期间,当我启动函数公式是我上面写的内容,而numberOfConditions为2时。
所以我制作了数组(0-2),并希望将零件放在那里。但是在curCcondition = 1期间,当我想从19到39子串(公式长度为59)时,我得到了。这怎么可能 ?
最后一步是对最后一个元素进行子串化(例如,当不存在&我不想削减任何东西或获得最后一部分(我不以&结束最后一部分)时)
有人可以帮助我吗?
最佳答案
String.Substring(startPoint, i - 1)
中的第二个参数不是结束索引,而是长度。因此,您需要从起点减去索引:
Parts(curCondition) = formula.Substring(startPoint, i - startPoint )
顺便说一句,您可以使用
String.Split
以更具可读性的方式获得相同的结果:Dim cut = "CurrentDate-[8]>15&CurrentDate-[8]<1000&[11]=HANWHA".Split({"&"c}, 3)
关于vb.net - 子字符串期间参数超出范围异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25739595/