【问题标题】:visual studio split function issue视觉工作室拆分功能问题
【发布时间】:2017-08-03 03:54:48
【问题描述】:

我尝试在 Visual Studio 上调用 split 函数,如下所示,我希望它在拆分后返回数组中的 2 项,但 vb 从我的编码中返回 5 个结果。是考虑vb问题还是我的编码问题?

整个字符串是 "NAME":"ALICE"

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

拆分后我期望在数组中的输出
(1) “姓名
(2) “爱丽丝”

【问题讨论】:

  • 正则表达式怎么样?
  • 你真的期待"NAME"ALICE"的输出吗? (请注意问题中额外的"s)
  • @djv 我也注意到了这一点......
  • vb 不能直接在字符串中使用冒号,必须在字符串中使用双冒号。这就是为什么我放了额外的冒号,如果我错了,请纠正我
  • @user1848681 你的意思是引用"

标签: vb.net visual-studio-2005


【解决方案1】:

您使用的是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)

那就是这个,

  • 姓名
  • 爱丽丝

【讨论】:

  • 在你发布之前修复它:)
  • 哈哈哈好样的!
  • vb 给我 Expression 预期的错误信息,这个编码不被 vb 接受
  • 我添加了SplitStringOptions,再试一次
  • 是的,添加 New String() 后它适用于 vs2005,谢谢您的帮助:)
【解决方案2】:
    Dim a As String = """NAME"":""ALICE"""
    Dim b() As String = a.Split(":")

这是它的评估方式

【讨论】:

  • 不能在 ": 中完成?我这样的代码是因为它可能在 'ALICE' 之间包含 ':' 字符,如 'AL:ICE'
  • 请给我看代码(相关行),以便我可以帮助你
  • 这个答案不在 vb.net 中
  • 如果一个名字有一个冒号,你怎么能期望在冒号上分开?
  • Dim a As String = """NAME"":""ALICE""" Dim b() As String = a.Split(":")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
  • 2015-06-17
  • 1970-01-01
  • 2010-12-03
相关资源
最近更新 更多