【问题标题】:VB newline escape char?VB换行符转义字符?
【发布时间】:2012-12-14 02:42:01
【问题描述】:

在 C 语言中,我使用"1st line 1\n2nd line" 作为换行符,但是 VB 呢?我知道"1st line" & VbCrLf & "2nd line",但它太冗长了,VB 中换行符的转义字符是什么?

我要打印

1st line
2nd line

我尝试使用\n,但无论我运行编译器多少次,它总是输出这个

1st line\n2nd line

有什么想法吗?

【问题讨论】:

  • 您也可以使用 myStr = myStr.Replace("\n", Environment.NewLine) 其中 myStr 已经包含您的内容,包括。 \n。也可以作为自定义扩展使用。

标签: c++ c vb.net newline output


【解决方案1】:

您应该使用Environment.NewLine。在 Windows 上计算为 CR+LF,在 Unix 系统上计算为 LF。

VB 中没有 CR 或 LF 字符的转义序列。这就是为什么"\n" 被逐字处理的原因。所以,Environment.NewLine 是你的人。

【讨论】:

    【解决方案2】:

    正如其他人所说,您应该使用环境敏感的Environment.NewLine 属性。 vbCrLf 是一个旧的 VB6 常量,它在 VB.NET 中提供用于向后兼容。因此,例如,您应该使用:

    "1st line" & Environment.NewLine & "2nd line"
    

    如果你有很多行的话太罗嗦,你可以使用StringBuilder类,而不是:

    Dim builder As New StringBuilder()
    builder.AppendLine("line 1")
    builder.AppendLine("line 2")
    builder.AppendLine("line 3")
    builder.AppendLine("line 4")
    

    如果您特别需要 CR 和 LF 字符,您应该使用 ControlChars 类中的常量,而不是旧的 vbCrLf 常量。

    【讨论】:

      【解决方案3】:

      您说的是 VB,但使用 VB.NET 进行了标记。你的问题也有点奇怪。不同的操作系统实际上需要不同的换行符。你想要的是Environment.NewLine。无论 .NET 框架在什么操作系统上运行,这都会为您提供正确的换行符。

      【讨论】:

        【解决方案4】:

        我还在使用老式的chr(13) 例如:

        "Hello" & chr(13) & "World"
        

        结果:

        Hello
        World
        

        编辑:就像 Dave Doknjas 所说,在你的情况下,应该是 chr(10) 来接听电话。

        【讨论】:

        • 如果您要使用 Chr,则使用 Chr(10) - 这相当于“\n”(这是原始问题)。
        【解决方案5】:

        如果您正在寻找内联转义来完成诸如在 String.Format 中包含换行符之类的事情,您可以包含一个管道或类似的东西,然后在字符串的末尾替换它。

        String.Format("批次:{0} | ProductNumber: {1} | 公式:{2}", dr.Item("BatchNumber"), dr.Item("PartNum"), dr.Item("公式")).Replace("|", Environment.NewLine)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-04
          • 1970-01-01
          • 1970-01-01
          • 2012-02-17
          • 2014-03-25
          • 1970-01-01
          相关资源
          最近更新 更多