拆分(""," |")返回1项

时间:2015-12-31 00:40:06

标签: vb.net split string-function

当我做以下事情时......

    Dim s As String = ""
    Dim sLines() As String = s.Split("|", StringSplitOptions.None)

...

sLines.Count是1。

为什么?

没有什么可以拆分,要拆分的字符串是空的,所以我希望sLines.Count为0。

谢谢。

3 个答案:

答案 0 :(得分:3)

一种一致性:如果"a|b"上的|分割为["a""b"],则"a"上的|分割为[ "a"],"|b"上的|分割为["""b"]和""分割{{1}成为[|]。

您可以通过""代替StringSplitOptions.RemoveEmptyEntries删除所有空条目,或者只是手动检查None

答案 1 :(得分:2)

查看Split的文档:

  

如果此实例不包含分隔符中的任何字符串,则返回的数组由包含此实例的单个元素组成。

这是你的情况。 ""不包含"|",因此会返回单个元素""

答案 2 :(得分:0)

您可以使用IIf()函数来处理空字符串

 Dim s As String = ""
 Dim sLines() As String = IIf(s = String.Empty, Nothing, s.Split("|"))
 Dim cnt As Integer
 If sLines IsNot Nothing Then
    'your code
    cnt = sLines.Count
 Else
    'your code
     cnt = 0
 End If

注意:如果你想处理空格(Dim s As String = " "),只需使用trim()这样

IIf(Trim(s) = String.Empty, Nothing, s.Split("|"))