如何解决String.Split方法创建空数组点
我不是专业程序员,只是FYI。
我在拆分字符串时遇到麻烦。所得数组的长度为3,第二个点(索引1)完全为空。
我可以操纵数组以所需的方式工作,但是我宁愿理解为什么这样做的原因并从一开始就对其进行正确编码。
Dim defaultSetting() As String
Dim curSetting as String = "MENU_ITEM_ON_OPEN;;OPTIONAL_LEAVE"
defaultSetting = curSetting.Split(";;")
MsgBox(defaultSetting.Length) 'this is 3
MsgBox(defaultSetting(0)) 'this is as expected "MENU_ITEM_ON_OPEN"
MsgBox(defaultSetting(1)) 'this is empty and I do not know why
MsgBox(defaultSetting(2)) 'this is "OPTIONAL_LEAVE" and should be stored in defaultSetting(1)
任何帮助将不胜感激,谢谢。
解决方法
这里的问题是Option Strict
设置为Off
。
使用的Split
重载期望ParamArray
中的Char
。
因此,字符串";;"
被“无声地”转换为单个字符。
您可以使用以下代码进行检查:
Dim x As Char = ";;"
MsgBox(x)
您想用字符串分割,这意味着您必须使用另一个重载:
defaultSetting = curSetting.Split({";;"},StringSplitOptions.None)
,
多亏了dbasnett发表评论,我才能够找到符合我期望的方式运行的代码,尽管我不太确定为什么有人愿意解释。但是,如果没有,这个问题已经回答了,谢谢。
defaultSetting = testString.Split(CType(";;",Char()),StringSplitOptions.RemoveEmptyEntries)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。