2013-06-12 65 views
8

Tôi đang cố gắng chia đoạn sau thành hai chuỗi.Tách một chuỗi trong VB.NET

"SERVER1.DOMAIN.COM Running" 

Vì điều này tôi sử dụng mã.

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 

này hoạt động tốt, và tôi nhận được hai hộp tin nhắn với "SERVER1.DOMAIN.COM""Running".

Sự cố tôi gặp phải là một số chuỗi ban đầu của tôi có nhiều hơn một khoảng trắng.

"SERVER1.DOMAIN.COM  Off" 

Có khoảng tám dấu cách ở giữa ".COM" và "Tắt".

Làm cách nào để tách chuỗi này theo cùng một cách?

+3

Sử dụng 'StringSplitOptions.RemoveEmptyEntries'. – Tim

Trả lời

7

Hãy thử điều này

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

Thay vì '" ". ToCharArray()' bạn chỉ có thể sử dụng một mảng các ký tự * *: 'strtemp.Split ({" "c}, StringSplitOptions.RemoveEmptyEntries)'. – Heinzi

2

Sử dụng theo cách này:

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

Dưới đây là một phương pháp sử dụng lớp 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 

Và cách LINQ để làm điều đó:

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 
Các vấn đề liên quan