簡體   English   中英

vb.net中的分割功能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM