首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >String.Split on VB.NET

String.Split on VB.NET
EN

Stack Overflow用户
提问于 2016-03-02 17:48:09
回答 2查看 612关注 0票数 1

我试图在VB.NET上做一个VB.NET,但它似乎不起作用。感谢任何帮助,看看我错过了什么:

在C#中:

代码语言:javascript
复制
sFileContents = File.ReadAllText(f.FullName);
sLines = sFileContents.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

在VB.NET中:

代码语言:javascript
复制
sFileContents = File.ReadAllText(f.FullName)
sLines = sFileContents.Split(New String() {"\r\n"}, StringSplitOptions.RemoveEmptyEntries)

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

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-02 17:58:18

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

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

代码语言:javascript
复制
sFileContents = File.ReadAllText(f.FullName)
Dim arg() As String = {vbCrLf, vbLf}
sLines = sFileContents.Split(arg, StringSplitOptions.RemoveEmptyEntries)
票数 1
EN

Stack Overflow用户

发布于 2016-03-02 17:57:56

用这个:

代码语言:javascript
复制
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没有任何东西。只有双引号需要转义(通过使用对)。例如:

代码语言:javascript
复制
Dim result = "He said, ""This is some code.""" 'Yields : He said, "This is some code."

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35754521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档