2013-05-20 73 views
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 

如何能在走到這一步?如何改變爲單迴路?有可能嗎?

+0

我很困惑你到底在做什麼,你只對整數值感興趣嗎?這是唯一需要解析的字符串嗎?任何更多的信息將有助於 – Josh

+0

請看我更新的答案。你會喜歡它。 – Neolisk

回答

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 
0

你可以分割使用正則表達式作爲分隔符:

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

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

凡正則表達式的意思是「逗號或兩個&符號」。請注意,您需要使用反斜槓'轉義'逗號;這是因爲逗號在正則表達式中做了一些特殊的事情。

不要忘記附上您的字符串引號:

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

據我所知,您希望只使用一個for each而不是for each使用for 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 
+0

巧妙但不太高效。我認爲使用正則表達式是一個很好的習慣。 – Bathsheba

+0

@Bathsheba:所以你認爲正則表達式是超高效的? :) – Neolisk

+0

如果Microsoft實施解析器,可能不會;-) – Bathsheba

0

一種選擇將是通過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