数据示例:
EFT- MONTREAL || 378 STREET AVE
EFT TORONTO1 || TESTING 875 RD ADDRESS
我需要从这些中提取:
EFT- MONTREAL
EFT TORONTO1
(注意:此行的末尾是额外的空格)这是正确的提取方式吗?
String.Split(" || ")(0)
问题是,有时我将这些值保存到数据库:
EFT-
EFT
我只是想知道哪一种方法是正确的,所以我可以将每一行改为正确的一行。
答案 0 :(得分:5)
不,没有接受字符串的重载。因此,您实际上正在使用String.Split
的重载,该重载接受ParamArray
Char()
。但是这将检查这些字符是否匹配,因此不仅整个子字符串匹配。它与此相同:
Dim first = text.Split(" "c, "|"c, "|"c, " "c)(0) ' "EFT-"
请改用:
Dim first = text.Split({" || "}, StringSplitOptions.RemoveEmptyEntries)(0)
请注意,您也可以使用StringSplitOptions.None
,这不是问题。
String.Split Method(String(), StringSplitOptions)
返回包含此字符串中子字符串的字符串数组 由指定字符串数组的元素分隔。一个 参数指定是否返回空数组元素。
但请注意,您应该将OPTION STRICT
设置为on
,然后您的代码甚至不会编译,因为字符串不是隐式的Char()
。使用OPTION STRICT off
,它将被静默转换。