繁体   English   中英

VB.NET上的String.Split

[英]String.Split on VB.NET

我正在尝试在VB.NET上执行String.Split,但它似乎无法正常工作。 感谢任何帮助,以了解我所缺少的内容:

在C#中:

sFileContents = File.ReadAllText(f.FullName);
sLines = sFileContents.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

在VB.NET中:

sFileContents = File.ReadAllText(f.FullName)
sLines = sFileContents.Split(New String() {"\r\n"}, StringSplitOptions.RemoveEmptyEntries)

在C#中,我得到正确分割的行数,而在VB.NET中,我仅得到1行。

谢谢

用这个:

sFileContents = File.ReadAllText(f.FullName)
sLines = sFileContents.Split({ Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)

另外,请注意,上面的代码中省略了New String() VB.NET可以直接接受{ <element>, <element> }形式的数组。 因此,不需要New关键字和初始化程序。

实际上,您应该使用Environment.NewLine因为您永远无法确定不同平台上的行尾。

在VB.NET中, "\\r\\n"本身解释为"\\r\\n"而不是C#中Carriage-Return + NewLine 它们被称为特殊字符。 VB.NET没有任何。 只有双引号需要转义(通过使用对)。 例如:

Dim result = "He said, ""This is some code.""" 'Yields : He said, "This is some code."

另一种选择是使用预定义的VB.NET常量,例如vbCrLf但我想说Environment.NewLine是更好的方法。

转义序列在VB.NET中不起作用。

您应该使用VB.NET常量:vbCrLf,vbLf

sFileContents = File.ReadAllText(f.FullName)
Dim arg() As String = {vbCrLf, vbLf}
sLines = sFileContents.Split(arg, StringSplitOptions.RemoveEmptyEntries)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM