使用.NET 3.5我遇到了string.split的问题:
要拆分的字符串是:
dim source as string = "ab|foo|bar|bar|bar-foo|ab|ezrezertr|ghghhjhj|ab|foo|xxx|"
dim result() as string = source.split("ab|")
Run Code Online (Sandbox Code Playgroud)
在Winforms应用程序中使用时,结果为"正确":
结果(0)是"foo | bar | bar | bar-foo |"
结果(1)是"ezrezertr | ghghhjhj |"
结果(2)是"foo | xxx |"
而且我很开心!
在后面的ASP.NET代码中使用时,结果是:
结果(0)是"b | foo | bar | bar | bar-foo |"
结果(1)是"b | ezrezertr | ghghhjhj |"
结果(2)是"b | foo | xxx |"
换句话说,split函数只能删除分隔符字符串的第一个字符!有人知道为什么吗?
ASP.NET结果看起来像你正在使用Regex.Split而不是String.Split.该字符串"ab|"将被解释为"a"的正则表达式,后跟"b"或没有,所以只是"a"匹配.
后来:第二理论:
String.Split需要单个字符串参数.唯一的一个参数重载需要一个数组char.String.Splt(char())将拆分任何传递的字符.Option Strict On将字符串隐式转换为字符数组.因此,我认为在ASP.NET案例中你没有option strict on,因此theString.Split(anotherString)被视为theString.Split(anotherString.ToCharArray()).
因此分裂只是一个"b".
然而,这留下了第一种情况如何作为传递字符串的问题,但是没有超载String()而没有额外的参数(a SplitOptions)......
简介:Visual Basic在文件/项目/语言级别设置的额外隐式转换和行为可以使相同的代码行为不同.
| 归档时间: |
|
| 查看次数: |
1108 次 |
| 最近记录: |