将字符串拆分为2个不同的子串vb.net

时间:2011-08-09 16:47:02

标签: vb.net string substring vb.net-2010

我正在尝试将字符串拆分为2个子字符串。第一个包含第一个236(0到235)字符,第二个包含从字符串237到字符串结尾。

firststr = str.Substring(0, 235)
secondstr = str.Substring(235, strLength)  'strLength is the total length of the string

strLength正在生成错误:索引和长度必须引用字符串中的位置。 参数名称:长度

任何帮助?

6 个答案:

答案 0 :(得分:3)

你需要这样的东西:

secondstr = str.Substring(235, strLength - 235)

因为strLength是整个字符串的长度,并且你从位置235开始,所以你将超过字符串的结尾。

答案 1 :(得分:1)

第二个参数是你需要多少个字符而不是最终位置。尝试类似的东西: second str = str.Substring(235,strLength-235)(也许你还需要-1)

答案 2 :(得分:1)

通常数据第二个参数将是您想要的子字符串的长度,在本例中为strLength-236。我不知道vb.net,但是在C#中,当使用子字符串时,你不需要为strLength指定第二个变量secondstr,因为默认值是字符串的结尾。

[edit] - 修复

答案 3 :(得分:1)

如果您只想转到字符串的末尾,那么在使用Substring方法时可以不使用length参数。默认是转到字符串的末尾。

secondstr = str.Substring(236)

将为您完成工作。

答案 4 :(得分:0)

从我看到的,您的变量strLength的值超出了字符串str的边界。

答案 5 :(得分:0)

我注意到没有人按照描述在你的代码中找到了其他错误。

Substring的第二个参数是返回的长度,因此firstStr包含与Left(str, 235)相同的内容,即它包含235个字符,而不是236个。

为了完整起见,这是您的查询的VB解决方案:

firststr = Left(str, 236)
secondstr = Mid(str, 237)
相关问题