【问题标题】:VB.net split string on non-alphanumeric, non-hyphen charactersVB.net 在非字母数字、非连字符上拆分字符串
【发布时间】:2012-05-24 21:13:42
【问题描述】:

还有比这个 for 循环更好的方法吗?

基本上,对于从要拆分的字符串创建的 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

【问题讨论】:

  • 您可以使用string.Split 在简单的分隔符上进行拆分,或使用Regex.Split 进行更复杂的场景。

标签: vb.net string split


【解决方案1】:

string.Split 方法已经提供了此逻辑,该方法采用可能的分隔符列表进行拆分。

Return myString.Split("-"C)

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

【讨论】:

  • 我希望拆分除字母、数字和连字符以外的任何字符。但是 Regex.Split 似乎更清晰。
  • 啊。是的,您应该能够使用否定字符类来处理它,例如Regex.Split("[^a-zA-Z0-9-]")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-09
  • 2014-12-22
  • 1970-01-01
  • 2019-07-11
  • 1970-01-01
  • 2022-09-29
相关资源
最近更新 更多