2017-02-28 66 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的两元素数组。