[英]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.