2017-08-03 67 views
1

我试着在Visual Studio上调用split函数,如下所示,我希望它在分割后返回数组中的2个项目,但是vb从我的编码中返回5个结果。这是考虑VB问题或我的编码问题?视觉工作室分裂功能问题

整个字符串是“NAME”: “爱丽丝”

Dim a As String = """NAME"":""ALICE""" Dim b() As String = a.Split(""":")

输出I预计在阵列之后分裂
(1)“NAME
(2)“爱丽丝”

enter image description here

+0

怎么样的正则表达式? – Codexer

+1

你真的期望''NAME',''ALICE''的输出?(注意你的问题中额外的''') – djv

+0

@djv我注意到了这个以及... – Codexer

回答

3

您使用this overload of String.Split(Char[])。请注意,需要一个字符数组。字符串可以转换为字符数组(这就是为什么你可以编译),但它不是平等的。尝试将Option Strict On放在代码的顶部。它不会像你已经有的那样编译:)

当传递单个字符串时,字符串中的每个字符都用于分割。包括每个"在您的论点中,":。它将拆分为":。您可以通过使用this overload of String.Split(String[], SplitStringOptions)将字符串数组传递给Split来绕过它。通过一个单一的元素阵列像这样

Dim b = a.Split({""":"}, StringSplitOptions.RemoveEmptyEntries) 

enter image description here

是的,这正是如你所说,

  • “NAME
  • “驴友”

你想要摆脱结果中的引号?你可以这样做

Dim b = a.Split({":", """"}, StringSplitOptions.RemoveEmptyEntries) 

enter image description here

那么它的这个,

  • NAME
  • ALICE
+0

它的冒号,分号不... – Codexer

+0

修正它,你张贴:) – djv

+0

Hahahaaha前太好了! – Codexer

0
Dim a As String = """NAME"":""ALICE""" 
    Dim b() As String = a.Split(":") 

这是怎么计算

enter image description here

+0

这是不能在”:?我这样的代码是因为它可能包含“ALICE”之间的':'字符,如'AL:ICE' – user1848681

+0

请向我显示代码(相关行),以便我可以帮助您 –

+1

此答案不在vb.net – djv