1

私のアプリケーションでは、このような文字列があります1,2,3&&4,5,6。今、私はループごとに単一のすべての要素をチェックしたいと考えています。それは可能ですか?可能であれば、どうすればこれを達成できますか?

splitメソッドを使用しようとしています。しかし、splitメソッドを使用している場合、ループ以上のものが必要です。

お気に入り

dim sa as string=1,2,3&&4,5,6

for each x as string in sa.split("&&")
  for each y as string in x.split(",")
    ''' Here My Process
  next
next

どうやってこれを乗り越えることができますか?. どのようにシングルループに変更できますか?. 可能かどうか。

4

4 に答える 4

2

String.Split文字列区切り文字の配列を受け入れるオーバーロードがあります。

Dim input As String = "1,2,3&&4,5,6"
For Each element As String In input.Split({",", "&&"}, StringSplitOptions.None)
  'do your processing on (1,2,3,4,5,6)
Next
于 2013-05-20T13:04:24.767 に答える
2

私が理解しているように、 in を使用する代わりに 1 つだけを使用する必要がありfor eachます。for eachfor each

最初に「&&」で分割してから「,」で結合できます。

dim sa as string=1,2,3&&4,5,6
dim stringArray = String.Join(",", sa.split("&&")).split(",")

for each x as string in stringArray
end for
于 2013-05-20T12:59:33.153 に答える
0

正規表現を区切り文字として使用して分割できます。

Imports System.Text.RegularExpressions 'goes at the top of the module

For Each x As String In Regex.Split(sa, "\,|&&")

正規表現は「コンマまたは 2 つのアンパサンド」を意味します。バックスラッシュを使用してコンマを「エスケープ」する必要があることに注意してください。これは、コンマが正規表現で特別なことを行うためです。

文字列を引用符で囲むことを忘れないでください。

dim sa as string="1,2,3&&4,5,6"
于 2013-05-20T12:58:22.543 に答える
0

1 つのオプションは、メソッドを介して「,」と「&」で分割し、Split空のエントリを無視することです。

Dim sa As String = "1,2,3&&4,5,6"
Dim split As String() = sa.Split(New Char() {",", "&"}, StringSplitOptions.RemoveEmptyEntries)

For Each value In split
    Debug.WriteLine(value)
Next
于 2013-05-20T13:04:23.970 に答える