嗨,我有一个这样的字符串:
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)。怎么可能?
最后一步是对最后一个元素进行子串(例如,当没有&amp; i不想要切割任何东西或者得到最后一个部分时(我不会用&amp; #t结尾) ;))
有人可以帮助我吗?
答案 0 :(得分:2)
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)