2009-07-31 153 views
9

使用VB.NET - 我有一个字符串:如何使用多字符分隔符分割字符串,并保持分离

"##RES00012##Some value ##RES00034##Another value" 

那我想用"##RES"作为分隔符来拆分:

"##RES00012## Some value""##RES00034## Another value"

string.split函数似乎没有提供超载来分割多个字符或字符数组并保持分隔符,这是功能性pur构成。

我正在寻找只是寻找indexOf("##res")和使用字符串操作来做到这一点,除非我失去了明显的东西?我已经搜索了一个解决方案,但无法找到任何事实上做我以后。

以下是最接近我已经找到: how-do-i-split-a-string-by-a-multi-character-delimiter-in-c

回答

16

的多个字符分割是不是靠谱;上有String.Split方法,做的是重载:

Dim input As String = "##RES00012## Some value ##RES00034## Another value" 
Dim parts As String() = input.Split(New String() {"##RES"}, StringSplitOptions.RemoveEmptyEntries) 

这会给你两种元素的数组:

"00012## Some value " 
"00034## Another value" 

然而,隔板被冷落。尽管如此,这并不是太棘手。应该预先考虑到每个元素(除了第一个,如果该字符串不与分离器开始):

Dim input As String = "##RES00012## Some value ##RES00034## Another value" 
Dim parts As String() = input.Split(New String() {"##RES"}, StringSplitOptions.RemoveEmptyEntries) 

For i As Integer = 0 To parts.Length - 1 
    If i > 0 OrElse input.StartsWith("##RES") = True Then 
     parts(i) = "##RES" & parts(i) 
    End If 
Next 
13

这是一个很大的额外代码乡亲......为什么不直接使用:

Dim inputs As String = "first value##second value##third value" 
Dim parts As String() = Strings.Split(inputs,"##") 
+0

太棒了!很清楚的解决方案 – 2014-05-20 16:55:10