2014-07-15 44 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