2012-05-24 72 views
2

有没有比这更好的方法for循环?VB.net在非字母数字,非连字符上拆分字符串

基本上,对于从要分割的字符串创建的charArray中的每个字符,如果字符是字母,数字或连字符,我将它附加到一个临时字符串。当我看到分割字符或最后一个字符,并且临时字符串具有值时,我将它添加到集合中以返回。

For i As Integer = 0 To (charArrayLength - 1) 

     charToInspect = CChar(charArray.GetValue(i)) 

     If IsLetterOrDigit(charToInspect) Or charToInspect = hyphen Then 
      tempString = tempString + charToInspect 

      If i = (charArrayLength - 1) Then 
       listOfStringToReturn.Add(tempString) 
      End If 

     ElseIf tempString.Length > 0 Then 
      listOfStringToReturn.Add(tempString) 
      tempString = String.Empty 

     End If 
    Next 

    Return listOfStringToReturn 
+3

您可以使用[**'string.Split' **](http://msdn.microsoft.com/en-us/library/system.string.split.aspx)在简单的分隔符上进行分割,或者[**'Regex.Split' **](http://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.regex.split.aspx)更复杂的场景。 – mellamokb

回答

4

逻辑已经由string.Split方法,该方法的可能的分离字符的列表分裂上提供。

Return myString.Split("-"C) 

如果你有更复杂的分隔符,你可以看看Regex.Split

+0

我正在寻找除alpha,数字和连字符之外的任何字符。但Regex.Split似乎更清楚。 – Thalecress

+1

啊。雅你应该能够处理与否定的字符类,像'Regex.Split(“[^ a-zA-Z0-9 - ]”)' – mellamokb