2016-11-21 20 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

私は、代替機能を使用して<<>を一部の単一文字で置き換え、<>を他の単一のcharと置き換えることができますが、なぜスプリット関数がこのように動作しているのでしょうか? –

+0

私はあなたの問題を解決するための解決策を探していたと理解しました – romulus001

+0

はい!表示していただきありがとうございます。 –

3

Split方法は、タイプCharのパラメータを取ります。 Stringのパラメータを渡したため、コードは "Option Strict On"でコンパイルされません。 Option 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()がうまく機能しました。

関連する問題