我試着在Visual Studio上調用split函數,如下所示,我希望它在分割後返回數組中的2個項目,但是vb從我的編碼中返回5個結果。這是考慮VB問題或我的編碼問題?視覺工作室分裂功能問題
整個字符串是「NAME」: 「愛麗絲」
Dim a As String = """NAME"":""ALICE""" Dim b() As String = a.Split(""":")
輸出I預計在陣列之後分裂
(1)「NAME
(2)「愛麗絲」
我試着在Visual Studio上調用split函數,如下所示,我希望它在分割後返回數組中的2個項目,但是vb從我的編碼中返回5個結果。這是考慮VB問題或我的編碼問題?視覺工作室分裂功能問題
整個字符串是「NAME」: 「愛麗絲」
Dim a As String = """NAME"":""ALICE""" Dim b() As String = a.Split(""":")
輸出I預計在陣列之後分裂
(1)「NAME
(2)「愛麗絲」
您使用this overload of String.Split(Char[])。請注意,需要一個字符數組。字符串可以轉換爲字符數組(這就是爲什麼你可以編譯),但它不是平等的。嘗試將Option Strict On
放在代碼的頂部。它不會像你已經有的那樣編譯:)
當傳遞單個字符串時,字符串中的每個字符都用於分割。包括每個"
在您的論點中,":
。它將拆分爲"
和:
。您可以通過使用this overload of String.Split(String[], SplitStringOptions)將字符串數組傳遞給Split來繞過它。通過一個單一的元素陣列像這樣
Dim b = a.Split({""":"}, StringSplitOptions.RemoveEmptyEntries)
是的,這正是如你所說,
你想要擺脫結果中的引號?你可以這樣做
Dim b = a.Split({":", """"}, StringSplitOptions.RemoveEmptyEntries)
那麼它的這個,
這是不能在」:?我這樣的代碼是因爲它可能包含「ALICE」之間的':'字符,如'AL:ICE' – user1848681
請向我顯示代碼(相關行),以便我可以幫助您 –
此答案不在vb.net – djv
怎麼樣的正則表達式? – Codexer
你真的期望''NAME',''ALICE''的輸出?(注意你的問題中額外的''') – djv
@djv我注意到了這個以及... – Codexer