2016-11-21 38 views
-3

代碼:不當行爲

Dim list1 As New List(Of String)(line_items.Split("<<>>")) 

我試圖分裂以下字符串。

line_items=8903385828097<>PRINTED TWILL DUNGAREES<>1<>25.94<>50.00<>497.50<>524.86<>995.00<<>> 

獲取錯誤信息。請參考輸出:

check output here.

回答

0

你可以試試這個代碼:

Dim list1 As New List(Of String)(line_items.Replace("<<>>", "").Replace("<>", "#").Split("#")) 
+0

先生,我知道我可以使用替換函數來替換一些單個字符和<>與其他單個字符,但爲什麼split函數的行爲是這樣的? –

+0

我明白你正在尋找解決方案來解決你的問題 – romulus001

+0

是的男人!感謝您的參與。 –

3

Split方法採用Char類型的參數。由於您已通過String類型的參數,因此您的代碼將無法使用「Option Strict On」進行編譯。當選項Strict關閉時,編譯器將隱式類型轉換從String變爲Char,因此會傳遞「<」c(第一個字符)而不是「< < >>」。

如果要分割字符串「<>」或「< < >>」,則必須將其中一個值作爲字符串數組的唯一元素傳遞。

Dim list1 As New List(Of String)(line_items.Split(New String() {"<>"}, StringSplitOptions.None)) 

Dim list1 As New List(Of String)(line_items.Split(New String() {"<<>>"}, StringSplitOptions.None)) 
0

以下是代碼:

Dim list1 As New List(Of String)(line_items.Split(New String() {"<<>>"}, StringSplitOptions.RemoveEmptyEntries)) 

我用New Char()代替New String()New String()運行良好。