我对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(",")
答案 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))
然后您可以单独处理列表和字段。