2014-07-15 73 views

回答

1

看來你想在~拆分後每2項。
這應該這樣做:

Dim str = "ASD~QW~DFGH~LOP~GGGH~123~SXC~QL~" 
Dim res = str.Split("~"C) _ 
      .Select(Function(x, i) New with { x, i }) _ 
      .Where(Function(s) s.i Mod 2 = 1) _ 
      .Select(Function(s) s.x) 

結果將是字符串的集合:"QW","LOP","123","QL"

+0

如何在一個MsgBox顯示? – mcbalaji

+0

對於winforms:'MessageBox.Show(string.Join(「,」,res))' – Magnus

+0

顯示錯誤無法投射類型爲'WhereEnumerableIterator'1 [VB $ AnonymousType_2'2 [System.String,System.Int32]]的對象'鍵入'System.String []'。 – mcbalaji

1

這樣的事情,你可能會想正則表達式。

.*?~([^~]+?)(?=~) 

雖然給你的例子,String.Split可能會被按摩到工作。

這是使用正則表達式的ideone sample

而這裏的使用String.Split Split函數的版本....

Public Function Split(input As String) As List(Of String) 
    Dim results as List(Of String) 
    Dim pos = input.IndexOf("~") 
    If pos < 0 Then 
     Return New List(Of String) ' return empty list if no match 
    End If 
    input = input.Remove(0, pos) 
    input = input.Substring(0, input.LastIndexOf("~")) 
    results = input.Split("~").Where(Function(x) Not String.IsNullOrEmpty(x)).ToList() 
    Return results 
End Function