我尝试在visual studio上调用split函数,如下所示,我希望它在分割后返回数组中的2个项目,但是vb从我的编码中返回5个结果。是考虑vb问题还是我的编码问题?
整个字符串是“NAME”:“ALICE”
Dim a As String = """NAME"":""ALICE"""
Dim b() As String = a.Split(""":")
分割后我在数组中的预期输出
(1)“NAME
(2)“驴友”
答案 0 :(得分:3)
您使用的是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)
然后就是这个,
答案 1 :(得分:0)