操作两个数组的Split函数

时间:2009-08-21 13:02:52

标签: vb.net arrays string split

我对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(",")

2 个答案:

答案 0 :(得分:0)

使用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

答案 1 :(得分:0)

如果您知道列表将出现在字段之前,您可以在最后一个';'处剪切字符串字符:

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))

然后您可以单独处理列表和字段。