gpt4 book ai didi

.net - String.Split 的异常行为

转载 作者:行者123 更新时间:2023-12-04 14:00:49 26 4
gpt4 key购买 nike

我今天早上遇到了这个问题。这是要复制的代码:

Dim s As String = "C:\program files (x86)\test1\abc.exe"
Console.WriteLine(s.Split("abc.exe")(0))

结果是: c:\progra我希望它是 c:\program files (x86)\test1\
任何想法它在这一点上 split ?

最佳答案

您正在使用错误的重载。您应该使用以字符串作为分隔符的那个,即:

Dim s As String = "C:\program files (x86)\test1\abc.exe"
Console.WriteLine(s.Split(New String() {"abc.exe"}, StringSplitOptions.None)(0))

澄清:

您观察到的行为是使用 Option Strict Off 的典型“缺点”之一。 (这就是为什么建议始终使用 Option Strict On 如果您不是 100% 确定自己在做什么):您正在使用以字符作为分隔符的重载并且 VB.NET 不会提示,因为自动转换 string s 进入 character s 是 Option Strict On 的其中之一做。至于 "abc.exe"不匹配任何字符,VB.NET 理解一些默认值(显然,一个空格)。

结论:当你使用 Split以字符串(由一个字符或 100 个字符组成)作为分隔符,您应该使用正确的重载(,如我的代码所示)。

结论 2:总是写 Option Strict On .

关于.net - String.Split 的异常行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22176847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com