【问题标题】:Splitting a string and storing multiple values into recognizable variables拆分字符串并将多个值存储到可识别的变量中
【发布时间】:2013-09-26 12:04:37
【问题描述】:

我将多个值存储在数据库中的字符串中。当我检索字符串以将其分配给不同的唯一变量时,我需要将其拆分。我在VB中做这个,vb对我来说还是有点新。

Dim scourceString = "<Var1>Person Name</Var1><Var2>11/11/13</Var2><Var3>Somthing else</Var3>"
  • 字符串可能不包含所有值。
  • 我想将其拆分并知道我正在处理的是哪个&lt;var#&gt;。

欢迎对如何做到这一点提出任何建议。

编辑:

我试过了:

Dim sx As String = "<tag1>test</tag1>  <tag2>testa2</tag2> <tag3>test3</tag3>"
Dim sb As String = sx.Split(New [String]() {"<tag2>"}, StringSplitOptions.RemoveEmptyEntries)(1).Split(New [String]() {"</tag2>"}, StringSplitOptions.RemoveEmptyEntries)(0)

我可以得到值,但它很脏。

【问题讨论】:

  • 您的预期结果是什么?你有什么尝试?
  • 我希望能够遍历并知道我正在查看的字符串中的哪个 var 并检索其内容...

标签: asp.net vb.net string split


【解决方案1】:

如果您知道数据总是会使用开始和结束 XML 标记进行格式化,就像这样,为了使它成为格式良好的 XML 文档,您需要做的就是添加一个根元素,如下所示:

Public Function ParseData(data As String) As MyData
    Dim doc As XDocument = XDocument.Parse("<Root>" + data + "</Root>")
    Dim values As New MyData()
    values.Var1 = doc.<Root>.<Var1>.Value
    values.Var2 = doc.<Root>.<Var2>.Value
    values.Var3 = doc.<Root>.<Var3>.Value
    Return values
End Function

Public Class MyData
    Public Property Var1 As String
    Public Property Var2 As String
    Public Property Var3 As String
End Class

然后你可以这样调用方法:

Dim scourceString As String = "<Var1>Person Name</Var1><Var2>11/11/13</Var2><Var3>Somthing else</Var3>"
Dim values As MyData = ParseData(scourceString)
Console.WriteLine(values.Var1)
Console.WriteLine(values.Var2)
Console.WriteLine(values.Var3)

【讨论】:

    【解决方案2】:

    试试这个

        Dim s As String = "<Var1>Person Name</Var1><Var2>11/11/13</Var2><Var3>Somthing else</Var3>"
        s = "<root>" & s & "</root>"
        Dim doc As XDocument = XDocument.Parse(s)
        Dim arr As XElement() = doc.Root.Elements().ToArray()
        For Each item As XElement In arr
            Response.Write(Convert.ToString(item) & "<br>")
        Next
    

    【讨论】:

      【解决方案3】:

      你不能用&lt;Var#&gt; 分割字符串,因为你不知道“#”值到底是什么。所以你可以做的是用一个常见的和unique分隔符存储值,比如(使用"¥"或你想要的)

      Dim scourceString = "Person Name¥11/11/13¥Somthing else" 
      

      现在要拆分字符串试试这样的拆分方法

      Dim TestArray() As String = scourceString.Split("¥")
      

      您拥有 TestArray() 中的所有值,您可以通过索引访问它们,例如 TestArray(0)、TestArray(1) .....

      【讨论】:

      • You can not split the string with... Regex.Split 是怎么回事?
      • @TimSchmelter 它是等等,即可能有更多项目。答案已更新
      • @downvoter 答案有什么问题?检查更新的答案
      猜你喜欢
      • 2015-12-27
      • 2015-02-05
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      • 1970-01-01
      相关资源
      最近更新 更多