2017-02-28 67 views
-1

我必須拆分文本分割字符串返回不同的結果

Dim strText as String = "Listings/Listing" 
Dim separator as String = "Listings/" 
Dim arr as string() = strText.split(separator) 

我的代碼返回3個結果

arr(0) = "" 
arr(1) = "istings/" 
arr(2) = "isting" 

問題是什麼問題?這是爲什麼發生?我需要一個ListingstrText

測試:http://rextester.com/VNQ39065

+0

這不會使用Option Strict進行編譯。最簡單的事情就是使用string.Replace – Plutonix

回答

1

嘗試這種方式相反,

Dim StrText As String = "Listings/Listing" 
Dim arr as string() = Split(StrText, "Listings/") 

的.split方法原理不同,和是基於字符的使用特定的重載,所以它只使用分隔符字符串中的第一個「L」c。

+0

它工作! :) – CMedina

+0

@CMedina,不要忘記接受答案,謝謝 –

+1

'.split方法...是基於字符的一半是真的。有6個重載,3個用於Char,3個用於String。 OP使用的是錯誤的,而Option Strict Off允許它編譯 – Plutonix

1

也許你的意思是

Dim strText as String = "Listings/Listing" 
Dim separator as String = "/" 
Dim arr as string() = strText.split(separator) 

arr(0) = "Listings" 
arr(1) = "Listing" 
+0

我需要拆分'Listings /' – CMedina

+1

我沒有意義。你用分隔符分割一個字符串,並且Listings /不會分隔任何東西。 – Oscar

+0

是正確的,我不明白是因爲發生這種情況 – CMedina

1

作爲另一種選擇,一個改變你原來的使用String()的一個分裂的重載也將工作,如:

Dim strText as String = "Listings/Listing" 
Dim separator as String() = {"Listings/"} 
Dim arr as string() = strText.split(separator, StringSplitOptions.RemoveEmptyEntries) 

的結果應該是:

arr(0) = "Listing" 

見有關String.Split方法(String(),StringSplitOptions)的MSDN文檔,以獲取有關使用的更多詳細信息。如果使用None而不是RemoveEmptyEntries,則將返回一個第一個元素爲String.Empty的兩元素數組。