0
我對Vb.Net中的拆分功能有點混淆。vb.net中的拆分功能
If hdnDetails.Value.Split("|").Length = 0 Then
lblMsg.Text="Error"
End If
即使是hdnDetails.Value=""
,這種說法總是如此。分割函數始終返回長度1。什麼是獲得0長度的解決方案?
我對Vb.Net中的拆分功能有點混淆。vb.net中的拆分功能
If hdnDetails.Value.Split("|").Length = 0 Then
lblMsg.Text="Error"
End If
即使是hdnDetails.Value=""
,這種說法總是如此。分割函數始終返回長度1。什麼是獲得0長度的解決方案?
String.Split
將永遠不會返回一個數組Length = 0
(與此超載)。 MSDN:
如果此實例不包含任何在分離器中的字符, 返回的陣列由包含此 實例的單個元件構成。
所以,你應該用String.Contains
,如果你想檢查是否字符串包含一個字符:
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的數組:兩個空字符串。
解決方案是一個空字符串!編輯:對不起,空字符串也返回1。我不確定是否有任何星座返回的數組將是0. – muffi
沒有解決方案。您需要檢查長度1,這意味着輸入文本未被分割。 –
這段代碼是[tag:vb.net],請不要使用不必要的標籤,如[tag:c#]。 – TheLethalCoder