我正在尝试将字符串拆分为 2 个子项。第一个包含前 236 个(0 到 235)个字符,第二个包含从 237 到字符串末尾的字符。
firststr = str.Substring(0, 235)
secondstr = str.Substring(235, strLength) 'strLength is the total length of the string
strLength 正在生成错误:索引和长度必须引用字符串中的位置。参数名称:长度
有什么帮助吗?
我正在尝试将字符串拆分为 2 个子项。第一个包含前 236 个(0 到 235)个字符,第二个包含从 237 到字符串末尾的字符。
firststr = str.Substring(0, 235)
secondstr = str.Substring(235, strLength) 'strLength is the total length of the string
strLength 正在生成错误:索引和长度必须引用字符串中的位置。参数名称:长度
有什么帮助吗?
你需要这样的东西:
secondstr = str.Substring(235, strLength - 235)
因为 strLength 是整个字符串的长度,并且您从位置 235 开始,所以您将越过字符串的末尾。
如果您只想到字符串的末尾,那么您可以在使用 Substring 方法时省略长度参数。默认是转到字符串的末尾。
secondstr = str.Substring(236)
将为您完成工作。
第二个参数是您需要多少个字符,而不是最终位置。尝试类似: secondstr = str.Substring(235, strLength-235) (也许你还需要-1)
通常 data 第二个参数将是您想要的子字符串的长度,在这种情况下strLength-236
。我不知道 vb.net,但在 C# 中,使用子字符串时不需要指定第二个变量strLength
,secondstr
因为默认值位于字符串的末尾。
[编辑] - 已修复
我注意到没有人按照描述在您的代码中发现另一个错误。
的第二个参数Substring
是返回的长度,因此firstStr
包含与 相同的内容Left(str, 235)
,即它包含您编写的 235 个字符,而不是 236 个。
为了完整起见,这是您查询的 VB 解决方案:
firststr = Left(str, 236)
secondstr = Mid(str, 237)
据我所知,您的变量strLength
的值超出了 string 的边界str
。