【问题标题】:printing string in c# using \r\n to start new line在 c# 中使用 \r\n 打印字符串以开始新行
【发布时间】:2011-11-06 15:03:59
【问题描述】:

我有一个 asp.net 和 c# 项目。

我需要把这个字符串打印出来,我是这样从服务器获取的:

Working...: 0/0\r\nNavigating: 0/0

它应该分两行打印出来(使用 \r\n),它不应该自动执行吗?

我做错了吗?

我无法更改字符串,但我使用它的方式是: 我有一个 EO 进度条,我会发送这样的消息:

_progressBar.UpdateProgress(_count, progress.Message);

它会在进度条下显示消息。 消息是我贴在上面的字符串。

谢谢

【问题讨论】:

  • HTML 使用<br/> 换行...
  • @Yahia,但我没有使用任何 html。如何让该字符串开始新行?
  • 使用它而不是 \r\n - 您将其标记为通常输出 HTML 的 ASP.NET,所以我假设您发送的字符串被解释为 HTML 客户端...
  • 我很困惑 - 如果你不能改变字符串 - 你期待什么作为答案(什么都不改变意味着结果通常不会改变)?

标签: c# asp.net string newline


【解决方案1】:

您的字符串似乎包含@"\r\n" 而不是"\r\n",在这种情况下您必须自己解析转义字符。

例如,将反斜杠-r 替换为 CR,将反斜杠-n 替换为 LF(不是最有效的方法):

string s0 = @"A\r\nB"; // s0 would print as: A\r\nB
string s = s0.Replace(@"\r","\r").Replace(@"\n","\n");

现在s 包含:

A
B

【讨论】:

  • 谢谢,你能更具体地说明我自己是如何解析的吗?
【解决方案2】:

使用<br/> - that is a line break in HTML...

编辑 - 根据评论:

string X = @"Working...: 0/0\r\nNavigating: 0/0";
string Y = X.Replace ( @"\r\n", @"<br/>" ); // Result is Working...: 0/0<br/>Navigating: 0/0

【讨论】:

  • 谢谢,但我没有使用任何 html。如何让该字符串开始新行?
  • @Ovi 使用它而不是 \r\n - 您将其标记为通常输出 HTML 的 ASP.NET,因此我假设您发送的字符串被解释为 HTML 客户端...
  • 你能告诉我用
    替换所有“\r\n”的确切语法吗?谢谢
【解决方案3】:

服务器必须向客户端发送后者理解的数据。 JSON、HTML、XML 或您正在使用的任何数据类型。

从客户端的角度来看,\r\n 只是一个字符串,就像其他字符串一样。在这种情况下,您可能需要发送如下内容:

Working...: 0/0<br/>Navigating: 0/0

并且打印它有 HTML。

【讨论】:

    【解决方案4】:

    您可能正在发送一个反斜杠,后跟一个 n 或 r,而不是 \r 或 \n。 如果是这样,您必须自己解析它们或将输出变为 \r 和 \n

    【讨论】:

      【解决方案5】:

      是的,它是自动的。

      using System;
      public class Test
      {
          public static void Main(string[] args)
          {
              string mesg = "Working...: 0/0\r\nNavigating: 0/0";
              Console.WriteLine(mesg);
          }
      }
      

      C:\temp>csc 测试.cs

      Microsoft (R) Visual C# 2010 编译器版本 4.0.30319。

      版权所有 (C) Microsoft Corporation。版权所有

      C:\temp>测试

      工作中...:0/0

      导航:0/0

      C:\温度

      【讨论】:

      • 那么为什么在我的情况下它不分开行?
      • 您似乎在使用字符串 mesg = @"Working...: 0/0\r\nNavigating: 0/0";在你的程序中。
      猜你喜欢
      • 1970-01-01
      • 2021-12-09
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多