【问题标题】:newline character in c# stringc#字符串中的换行符
【发布时间】:2012-12-22 07:07:11
【问题描述】:

我在 C# 字符串中有一些 html 代码。如果我使用 Visual Studio 的文本可视化器查看,我可以看到其中有许多换行符。但是,在我应用此代码后

string modifiedString = originalString.Replace(Environment.NewLine, "<br />");

然后我在 modifiedString 处使用文本可视化器查看,我可以看到它除了 3 个位置之外没有任何换行符。除了类似于换行符之外还有其他字符类型吗?

【问题讨论】:

  • 您可以检查特定位置的 char 值,因为您提到它只有 3 个。它们可能会在您的文本可视化工具中显示为新行,但实际上并不是新行。
  • NewLine 通常是两个字符,一个回车符和一个换行符。如果您只有其中一个而不是另一个,则文本可视化器可能会显示换行符。
  • NewLine 是 \r\n in Environment.NewLine

标签: c# string newline


【解决方案1】:

处理这个问题的一个好方法是使用正则表达式。

string modifiedString = Regex.Replace(originalString, @"(\r\n)|\n|\r", "<br/>");


这将用 html 标记替换 3 种合法类型的换行符中的任何一种。

【讨论】:

    【解决方案2】:

    它们可能只是 \r\n。我刚刚检查了一下,VS 2010 中的文本可视化工具既显示为换行符,也显示为 \r\n

    这个字符串

    string test = "blah\r\nblah\rblah\nblah";
    

    显示为

    blah
    blah
    blah
    blah
    

    在文本可视化器中。

    所以你可以试试

    string modifiedString = originalString
        .Replace(Environment.NewLine, "<br />")
        .Replace("\r", "<br />")
        .Replace("\n", "<br />");
    

    【讨论】:

    • 非常感谢,我就是这么做的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 2011-10-20
    • 2019-05-09
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多