在VB.NET中分割字符串

17

我试图将以下内容拆分为两个字符串。

"SERVER1.DOMAIN.COM Running"

我使用这段代码。

Dim Str As String = "SERVER1.DOMAIN.COM Running"
Dim strarr() As String
strarr = Str.Split(" ")
For Each s As String In strarr
    MsgBox(s)
Next

这个很好用,我弹出了两个消息框,显示了"SERVER1.DOMAIN.COM""Running"

但我的问题是一些最初的字符串有多于一个空格。

"SERVER1.DOMAIN.COM        Off"

在“.COM”和“Off”之间大约有8个空格。

我应该如何以相同的方式分离这个字符串?


4
使用StringSplitOptions.RemoveEmptyEntries。 - Tim
3个回答

22

试一试

Dim array As String() = strtemp.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)

4
你可以使用字符字面量数组来代替 " ".ToCharArray(): strtemp.Split({" "c}, StringSplitOptions.RemoveEmptyEntries) - Heinzi

3

使用以下方式:

Dim line As String = "SERVER1.DOMAIN.COM Running"
Dim separators() As String = {"Domain:", "Mode:"}
Dim result() As String
result = line.Split(separators, StringSplitOptions.RemoveEmptyEntries)

1
这是一种使用Regex类的方法:

    Dim str() = {"SERVER1.DOMAIN.COM Running", "mydomainabc.es     not-running"}
    For Each s In str
        Dim regx = New Regex(" +")
        Dim splitString = regx.Split(s)
        Console.WriteLine("Part 1:{0}  |  Part 2:{1}", splitString(0), splitString(1))
    Next

而使用LINQ的方法是:
    Dim str() = {"SERVER1.DOMAIN.COM Running", "mydomainabc.es     not-running"}
    For Each splitString In From s In str Let regx = New Regex(" +") Select regx.Split(s)
        Console.WriteLine("Part 1:{0}  |  Part 2:{1}", splitString(0), splitString(1))
    Next

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接