[英]Split function in vb.net
我在Vb.Net中的Split函數中有點困惑。
If hdnDetails.Value.Split("|").Length = 0 Then
lblMsg.Text="Error"
End If
即使hdnDetails.Value=""
此語句也始終是正確的。 拆分函數始終返回長度1。 獲得0長度的解決方案是什么?
String.Split
永遠不會返回Length = 0
的數組(此重載)。 MSDN:
如果此實例不包含分隔符中的任何字符,則返回的數組由包含該實例的單個元素組成。
因此,您應該使用String.Contains
是否要檢查字符串是否包含char:
If Not hdnDetails.Value.Contains("|") Then
lblMsg.Text="Error"
Else
Dim array = hdnDetails.Value.Split("|")
' Do something with this array if you need it
End If
您應該注意,如果您想知道字符串是否包含分隔符,檢查數組長度是否為1也可能是錯誤的。 如果使用帶StringSplitOptions
參數的String.Split
重載,則數組長度甚至可以為0。
考慮該字符串僅包含分隔符,因此它是"|"
並傳遞StringSplitOptions.RemoveEmptyEntries
,則結果數組的長度為0 。
如果傳遞StringSplitOptions.None
,則將得到一個長度為2的數組: 兩個空字符串 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.