2012-05-24 123 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