视觉工作室分裂功能问题
我试着在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)
是的,这正是如你所说,
- “NAME
- “驴友”
你想要摆脱结果中的引号?你可以这样做
Dim b = a.Split({":", """"}, StringSplitOptions.RemoveEmptyEntries)
那么它的这个,
- NAME
- ALICE
这是不能在”:?我这样的代码是因为它可能包含“ALICE”之间的':'字符,如'AL:ICE' – user1848681
请向我显示代码(相关行),以便我可以帮助您 –
此答案不在vb.net – djv
怎么样的正则表达式? – Codexer
你真的期望''NAME',''ALICE''的输出?(注意你的问题中额外的''') – djv
@djv我注意到了这个以及... – Codexer