2014-01-15 131 views
0

我在查詢之前已經搜索過該網站,但是沒有找到解決方案對我的問題有意義。拆分字符串的子字符串不是字符

首先我有一個字符串,它是這樣的:

Dim someString As String = "<object>sometext</object><object>sometext</object><object>sometext</object>" 

我試圖把它拆分成字符串數組,像這樣:

stringArray 0 --> "<object>sometext</object>" 
stringArray 1 --> "<object>sometext</object>" 
stringArray 2 --> "<object>sometext</object>" 

的方法我都試過了分裂文本從結果中刪除分隔符,這不是我想要的,因爲它會使代碼無效。

+1

要解析XML,所以我推測。這會讓你的任務變得更容易。下面是關於在VB.net中使用XML的一些閱讀方法 http://www.codeproject.com/Articles/4826/XML-File-Parsing-in-VB-NET –

+0

相關:http://stackoverflow.com/a/1732454/1440433 –

+0

嗨,感謝您的回覆。字符串實際上存儲在數據庫中,所以它不是來自xml文件。它似乎有很多額外的代碼使用XML只是爲了拆分它們 – user2928010

回答

3

這是一個有點僞代碼,我不知道確切的VB語法,但你可以嘗試在每個所以像最終迫使字符:

Dim someString As String = "<object>sometext</object><object>sometext</object><object>sometext</object>" 
var stringToSpilt = someString.Replace("</object>","</object>~") 
var splitObjects = stringToSpilt.Split("~") 

如果「對象」可以是任何文本,然後RegEx替換可以做到這一點,但正如上面的人所評論的,如果它是XML拆分,它會比這更多地涉及。

+2

替換不起作用。你需要重新分配它:'someString = someString.Replace(「」,「〜」)' – Alberto

+0

不錯的地方,更新上面(對於分割也是如此) –

+0

啊我喜歡這個想法,只是一個額外的行代碼,謝謝Mr.PieFace! – user2928010

0

使用的IndexOf和用List(串)工作,沒有任何隱藏的字符串碎片

Dim someString As String = "<object>sometext</object><object>sometext</object><object>sometext</object>" 
Dim result = new List(Of String)() 
Dim pos = 0 
Dim init = 0 
Dim len = "</object>".Length 
do 
    pos = someString.IndexOf("</object>", init) 
    if pos <> -1 Then 
     result.Add(someString.Substring(init, pos + len - init)) 
     init = pos + len + 1 
    End If 
Loop while pos <> -1