HOWTO · Csharp
在 C# 中将换行符添加到字符串
介绍在 C# 字符串中添加换行的三种方式:使用 `\n`、`Environment.NewLine`,或将现有文本中的特定标记替换为换行符。
本页内容
在 C# 字符串中添加换行,可以使用 \n 换行符转义序列、使用当前 .NET 环境对应的 Environment.NewLine,或将现有文本中的特定标记替换为换行符。应根据文本的用途选择换行序列;文件格式或网络协议可能规定了特定序列。
使用 \n 在 C# 字符串中添加换行
\n 转义序列表示换行(LF)字符。在字符串字面量中,将它放在新一行的起始位置即可。它表示的是该字符本身,不会根据操作系统选择换行约定。\r 转义序列表示回车(CR)字符;如果数据格式要求 CR,或要求 CR/LF 组合,就按该格式使用相应字符。
运行此示例:
本节中的代码以及显示的标签或输出仍为英文。
using System;
class Program
{
static void Main()
{
string message = "First line.\nSecond line.";
Console.WriteLine(message);
}
}
First line.
Second line.
当你可以控制字符串,并且需要明确插入 LF 时,这种方式很实用。如果读取该字符串的系统要求采用其他换行约定,则应改用该系统指定的序列。
使用 Environment.NewLine 获取平台特定的换行符
Environment.NewLine 提供当前 .NET 环境对应的换行序列。创建供该环境使用的文本(例如面向平台的文本文件)时,可以使用它。它不会检测其他文件格式或协议的要求。如果这些要求指定了 LF 或 CR/LF,即使与当前环境的约定不同,也应直接使用指定的序列。请参阅 Microsoft 的 Environment.NewLine 文档。
本节中的代码以及显示的标签或输出仍为英文。
using System;
class Program
{
static void Main()
{
string message = "First line." + Environment.NewLine + "Second line.";
Console.WriteLine(message);
}
}
First line.
Second line.
Console.WriteLine 也会在输出末尾添加换行符。内嵌的序列用于分隔 message 的两部分;末尾的换行符则由输出方法添加。
在创建字符串后添加换行
C# 字符串不可变,因此修改文本会生成一个新字符串。String.Replace() 会返回这个新值;如果要保留修改结果,请将返回值重新赋给变量。该方法会替换指定标记的每一次出现,因此输入中的每个 <break> 都会变成换行符。使用特定标记比替换所有句点更安全,因为普通句子中可能有应当保留的标点。现有的 Microsoft String.Replace() 文档介绍了此方法。
本节中的代码以及显示的标签或输出仍为英文。
using System;
class Program
{
static void Main()
{
string message = "First line.<break>Second line.";
message = message.Replace("<break>", "\n");
Console.WriteLine(message);
}
}
First line.
Second line.
请使用专门保留作此用途、不会作为普通文本出现的标记。如果希望替换结果遵循当前环境的换行约定,请将标记替换为 Environment.NewLine,而不是 \n。如果文本由你自行拼接,通常直接在原始字符串中加入所需的换行符,比事后修改更简单。
这三种方式涵盖了主要选择:在字符串字面量中插入 LF、使用当前环境的换行序列,或将现有文本中的专用标记转换为换行符。若格式或协议对换行有更严格的要求,应以其规定为准;本文不涉及平台与格式之间的换行对应关系。