2011-08-09 82 views
2

我試圖將字符串拆分爲2個子字符串。第一個包含前236個字符(0到235),第二個包含從237到字符串末尾的字符。將字符串拆分爲2個不同的子字符串vb.net

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

strLength正在產生錯誤:索引和長度必須引用字符串中的位置。 參數名稱:長度

任何幫助?

回答

3

你需要的東西是這樣的:

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

因爲strLength是整個字符串的長度,和你開始第235位,你會過去的字符串的結尾。

+0

感謝工作。 –

1

第二個參數是你需要多少個字符,而不是結束位置是多少。試着這麼做: secondstr = str.Substring(235,strLength-235)(也許你還需要-1)

+0

第二個參數具有in-determinant長度,字符串的末尾是長度。 我試過-1沒有工作,但-235沒有。謝謝! –

0

從我所看到的,您的變量strLength有一個值的字符串str的邊界之外。

1

通常數據的第二個參數是你想要的子串的長度,在這個例子中是strLength-236。我不知道vb.net,但是在C#中,當使用子字符串時,您不需要指定第二個變量strLength,因爲缺省值將轉到字符串的末尾。

[編輯] - 固定

1

如果你只想去一個字符串的結尾,那麼你可以使用子字符串方法離開時關閉長度參數。默認是去到字符串的末尾。

secondstr = str.Substring(236) 

將爲您完成工作。

0

我注意到noone在你的代碼中描述了其他錯誤。

的第二個參數是Substring返回的長度,所以firstStr包含相同Left(str, 235),也就是說,它包含235個字符爲你寫它,而不是236

爲了完整起見,這裏是一個VB的解決您的查詢:

firststr = Left(str, 236) 
secondstr = Mid(str, 237)