【问题标题】:Manipulating the Split Function for two arrays操作两个数组的拆分函数
【发布时间】:2009-08-21 13:02:52
【问题描述】:

我有一个关于 Visual Basic 中使用的拆分函数的问题。到目前为止,我已经编写了一个引入字符串值的函数。返回的字符串值可能类似于“List1;List2; Field1,Field2”。我的目标是使用该字符串的 split 函数将所有列表放入一个数组中,并将字段放入另一个数组中。

问题出在 List2 和 Field1 的位置之间。我不希望将 Field1 放在列表数组中。我在想可能有一种方法可以通过解析来做到这一点,但我不确定。下面是我当前的代码。提前感谢您的帮助。

        Dim s As String = GetSetting("ReOrderList", properties.SiteId)
        Dim affectedLists() As String = s.Split(";")
        Dim affectedFields() As String = s.Split(",")

【问题讨论】:

  • "返回的字符串值可能看起来像这样 "List1;List2;字段 1,字段 2"。"哇,太残忍了。您可以访问该代码吗?您是否可以返回一个更连贯的字符串,或者让生成字符串的函数为您返回两个数组?

标签: vb.net arrays string split


【解决方案1】:

如果您知道列表将位于字段之前,则可以在最后一个 ';' 处截断字符串人物:

Dim splitPos As Integer = input.LastIndexOf(";"c)
Dim lists As String = input.Substring(0, splitPos+1)
Dim fields As String = input.Substring(splitPos+1, input.Length - (splitPos+1))

然后您可以分别处理列表和字段。

【讨论】:

    【解决方案2】:

    使用String.LastIndexOf 查找分割字符串的位置。

    Imports System
    
    Class Test
        Shared Sub Main()
    
            Dim sample As String = "List1;List2; Field1,Field2"
    
            Dim middle As Int32 = sample.LastIndexOf(";")
    
            Dim lists As String = sample.Substring(0, middle).Trim()
            Dim fields As String = sample.Substring(middle + 1).Trim()
    
            Dim affectedLists As String() = lists.Split(";"C)
            Dim affectedFields As String() = fields.Split(","C)
    
        End Sub
    End Class
    

    【讨论】:

    • 非常感谢大家。我简直不敢相信我得到答案的速度如此之快。
    猜你喜欢
    • 2012-04-13
    • 2022-01-25
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多