2016-11-21 3 views
-3

Code:Falsches Verhalten von Split-Funktion

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

Ich versuche folgende Zeichenfolge zu teilen.

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

Falsche Informationen erhalten. Bitte beachten Sie Ausgabe:

check output here.

Antwort

0

Sie diesen Code versuchen:

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

Sir, ich weiß, ich kann ersetzen ersetzen <<>> mit einigen einzelnen Zeichen und <> mit anderen einzelnen char, aber warum ist Split-Funktion verhält sich so? –

+0

Ich habe verstanden, dass Sie nach einer Lösung gesucht haben, um Ihr Problem zu lösen – romulus001

+0

ja Mann! Danke für das Erscheinen. –

3

Die Split Methode nimmt einen Parameter vom Typ Char. Ihr Code wird nicht mit "Option Strict On" kompiliert, weil Sie einen Parameter vom Typ String übergeben haben. Wenn Option Strict deaktiviert ist, führt der Compiler eine implizite Typumwandlung von String nach Char aus, und daher wird "<" c (das erste Zeichen) übergeben und nicht "< < >>".

Wenn Sie die Zeichenfolge "<>" oder "< < >>" teilen möchten, müssen Sie einen dieser Werte als einziges Element eines String-Arrays übergeben.

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

Es folgt der Code:

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

I New Char() statt New String() verwendet wurde. New String() hat gut funktioniert.

Verwandte Themen