VB.Net中的换行符是什么?

32

我正在尝试在vb.net中在网页上打印一条消息。我想让消息在新行中显示。我尝试使用"\r\n"和换行符。但是这些内容会被打印在页面上而不是下一行。请告诉我是否有其他的替代方法。

16个回答

61

检查一下Environment.NewLine。至于网页,使用<br><p></p>标签添加换行。


1
恭喜您提供了 <p> </p> 解决方案 - 在我看来,这是最好的一个。 - jinzai

39

Environment.NewLine是最符合.NET风格的方法来获取字符,如果您关心这一点,在Windows上它将同时发出回车和换行符(carriage return and line feed),在Unix上则只发出回车符。

然而,您还可以使用VB6风格的vbCrLfvbCr,分别表示回车和换行符或仅回车符。


我怀疑你的答案虽然解决了如何获取换行符,但实际上并不是提问者需要的答案。他实际上需要的是HTML换行符。正如其他答案所述,没有一个只谈论NewLine的答案真正回答了这个问题。 - andynormancx
尽管如此,这个问题非常不清楚。我猜“在网页上打印一条消息”实际上可能意味着他试图在网页上使用alert()或msgbox(),这将使它成为一个完全不同的问题。 - andynormancx
是的,如果他提到了"\r\n",这是C语言中代表换行符的方式,那么问题本身就很糟糕。我假设他想要的答案就是这个。 - Garry Shutler
你今天让我开心了。我正在使用StringBuilder来构建并将其导出为csv文件,但是其他方法都不起作用(.Net 1.1,因此无法使用AppendLine())。vbCrLf完美地解决了这个问题! - Sekhar
从主题的标题来看,这正是我所期望的,谢谢! - Teorist

17

在VB中正确的做法是使用VB常量来表示换行符。主要有三个:

  • vbCrLf = "\r\n"
  • vbCr = "\r"
  • vbLf = "\n"

与像C#和C++这样的语言不同,VB默认不允许在字符串中使用任何字符转义码。这样做的原因之一是在处理文件路径时易于使用。

  • C++文件路径字符串:"c:\\foo\\bar.txt"
  • VB文件路径字符串:"c:\foo\bar.txt"
  • C#文件路径字符串:可以采用C++方式或@"c:\foo\bar.txt"

这些方法在.NET中已被弃用,应使用标准的Environment.NewLine。由于OP正在查看ASP.NET,因此这些常量无论如何都行不通。HTML <BR/>标签是提供所需解决方案的正确方法。 - John Baughman
我指的是VB6风格常量。只是为了明确。不过我仍然不会投反对票。 - John Baughman
2
@John,实际上你错了。VB常量绝不会被弃用。 - JaredPar
1
这些常量是从经典VB遗留下来的(并存在于Microsoft.VisualBasic程序集中)。它们旨在实现易于迁移到.Net。在非VB项目中使用它们将创建对Microsoft.VisualBasic程序集的程序集依赖性。使用 .Net Core,更喜欢使用Environment.NewLine的原因更多。 - an phu

14

在网页中需要使用HTML来实现换行。例如"<br/>"将会给你一个换行。


9
如果你正在使用类似这样的东西。
Response.Write("Hello \r\n")
Response.Write("World \r\n")

并且输出结果为:
Hello\r\nWorld\r\n

那么你基本上正在寻找这样的东西。
Response.Write("Hello <br/>")
Response.Write("World <br/>")

这将输出:
Hello 
World

您也可以将"<br />"定义为常量并重复使用

例如:

Public Const HtmlNewLine as string ="<br />"
Response.Write("Hello " &  HtmlNewLine) 
Response.Write("World " &  HtmlNewLine)

如果您想尽可能完善,甚至可以对Environment进行子类化并将HtmlNewLine添加到其中... - John Baughman
是的,约翰。如果需要的话,我们也可以添加扩展方法。 - Sachin Chavan

7
它是:
vbnewline 例如:
Msgbox ("第一行" & vbnewline & "第二行")

这在报告服务文本框表达式中完美地运行。 - Registered User

5

这对于Web环境没有任何作用。你需要一个<br />标签。 - Chris Ballance

3

你可以在Visual Basic .NET中解决这个问题,而无需连接文本,你可以将下面的代码作为你重载ToString函数的返回类型:

System.Text.RegularExpressions.Regex.Unescape(String.format("FirstName:{0} \r\n LastName: {1}", "Nordanne", "Isahac"))

3

3

在asp.net中,要在字符串中添加换行符,请使用<br>

对于基于Windows的应用程序,Environment.NewLine可正常工作。


现在这是正确的答案,我能够使用 <br> 标签将字符串消息写入新行。 - sahdeo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接