gpt4 book ai didi

vb.net - 子字符串期间参数超出范围异常

转载 作者:行者123 更新时间:2023-12-02 04:28:18 26 4
gpt4 key购买 nike

嗨,我有一个像这样的字符串:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com