2022年4月7日--使用C#迈出第一步--在C#中执行基本字符串格式设置

本文介绍了C#中处理字符串的方法,包括字符转义序列、逐字字符串、Unicode转义字符等基本概念及其应用实例,还详细讲解了字符串串联与字符串内插的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将包含大量特殊字符、格式和 Unicode 的文字文本和变量文本数据结合起来,构成对最终用户而言有意义的消息。

字符转义序列和逐字字符串

在C#中设置文本字符串的格式

C# 提供了大量用于设置字符串格式的选项。

字符转义序列

 在 C# 中,转义字符序列以反斜杠 \ 开头,后面再包含一个字符。 例如,\n 序列将添加一个新行,而 \t 序列将添加一个制表符。

Console.WriteLine("Hello\nWorld!");
Console.WriteLine("Hello\tWorld!");

Hello
World!
Hello   World!

Console.WriteLine("Hello \"World\"!");

Hello "World"!

Console.WriteLine("c:\\source\\repos");

c:\source\repos

步骤1-使用字符转义序列设置命令行应用输出的格式

Console.WriteLine("Generating invoices for customer \"ABC Corp\" ...\n");
Console.WriteLine("Invoice: 1021\t\tComplete!");
Console.WriteLine("Invoice: 1022\t\tComplete!");
Console.WriteLine("\nOutput Directory:\t");

Generating invoices for customer "ABC Corp" ...

Invoice: 1021		Complete!
Invoice: 1022		Complete!

Output Directory:

逐字字符串文本

逐字字符串文本将保留所有空格和字符,而无需转义反斜杠。 要创建逐字字符串,请在文本字符串的前面使用 @ 指令。

Console.WriteLine(@"   c:\source\repos   
      (this is where your code goes)");

c:\source\repos   
      (this is where your code goes)

步骤2-使用逐字文本字符串设置命令行应用程序输出的格式

Console.Write(@"c:\invoices");

c:\invoices

Unicode转义字符

使用 \u 转义序列在文本字符串中添加编码字符,然后使用四个字符的代码表示 Unicode (UTF-16) 中的某些字符。

// Kon'nichiwa World
Console.WriteLine("\u3053\u3093\u306B\u3061\u306F World!");

こんにちは World!

步骤3-使用Unicode转义字符设置命令行应用程序输出的格式

// To generate Japanese invoices:
// Nihon no seikyū-sho o seisei suru ni wa:
Console.Write("\n\n\u65e5\u672c\u306e\u8acb\u6c42\u66f8\u3092\u751f\u6210\u3059\u308b\u306b\u306f\uff1a\n\t");
Console.WriteLine(@"c:\invoices\app.exe -j");

日本の請求書を生成するには:
	c:\invoices\app.exe -j

回顾

关于设置文本字符串格式要记住的最重要的事项:

  • 当需要在文本字符串中插入特殊字符时,请使用字符转义序列,例如制表符 \t、换行符 \n 或双引号 \"
  • 在所有其他情况下,需要使用反斜杠时,请对反斜杠 \\ 使用转义字符。
  • 使用 @ 指令创建逐字字符串文本,以将所有空白格式和反斜杠字符保留在字符串中。
  • 使用 \u 加上四个字符的代码来表示字符串中的 Unicode 字符 (UTF-16)。
  • 根据应用程序的不同,Unicode 字符可能无法正确打印。

字符串串联

什么是字符串串联?

字符串串联是“程序员的表述”,指的是将两个或更多值简单合并成一个新值。 与相加不同,第二个值追加到第一个值的末尾,以此类推。

步骤1:删除代码编辑器中的所有代码。

步骤2:连接文本字符串和变量。

要将两个字符串连接在一起,请使用字符串连接运算符,即加号 +

string firstName = "Bob";
string message = "Hello " + firstName;
Console.WriteLine(message);

Hello Bob

步骤3:串联多个变量和文本字符串。

可以在同一行代码中执行多个串联操作。

string firstName = "Bob";
string greeting = "Hello";
string message = greeting + " " + firstName + "!";
Console.WriteLine(message);

Hello Bob!

步骤4:避免中间变量。

string firstName = "Bob";
string greeting = "Hello";
Console.WriteLine(greeting + " " + firstName + "!");

Hello Bob!

回顾:

主要理念:

  • 通过字符串串联,可将较小的文字字符串和变量字符串合并成一个字符串。
  • 如果添加中间变量不会增加可读性,则避免创建中间变量。

字符串内插

虽然字符串串联简单方便,但在需要将许多文本字符串和变量合并成带格式的单个消息的情况下,字符串内插越来越受欢迎。

什么是字符串内插?

字符串内插通过使用“模板”和一个/多个内插表达式将多个值合并为单个文本字符串。 内插表达式是一个变量,由一个左大括号和一个右大括号符号 { } 括起来。 当文本字符串以 $ 字符为前缀时,该字符串将变为模板。

步骤 1:删除代码编辑器中的所有代码


步骤 2:使用字符串内插将文本字符串和变量值合并在一起

若要将两个字符串内插在一起,请创建一个文本字符串,并在字符串前面加上 $ 符号。 文本字符串应包含至少一组大括号 {}。

string firstName = "Bob";
string message = $"Hello {firstName}!";
Console.WriteLine(message);

Hello Bob!

步骤 3:将字符串内插与多个变量和文本字符串一起使用

你可以在同一行代码中执行多个内插操作。

string firstName = "Bob";
string greeting = "Hello";
string message = $"{greeting} {firstName}!";
Console.WriteLine(message);

Hello Bob!


步骤 4:避免中间变量

string firstName = "Bob";
string greeting = "Hello";
Console.WriteLine($"{greeting} {firstName}!");

Hello Bob!


步骤 5:合并逐字文本和字符串内插

string projectName = "First-Project";
Console.WriteLine($@"C:\Output\{projectName}\Data");

C:\Output\First-Project\Data

 


回顾

主要理念:

  • 字符串内插可减少某些情况下所需的字符数,与字符串串联相比实现了改进。
  • 通过合并每个字符串的符号并将其用作字符串模板的前缀,可以合并字符串内插和逐字文本。

string projectName = "ACME";
string englishLocation = $@"c:\Exercise\{projectName}\data.txt";
Console.WriteLine($"View English output:\n\t\t{englishLocation}\n");
            
string russianMessage = "\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0432\u044b\u0432\u043e\u0434";
string russianLocation = $@"c:\Exercise\{projectName}\ru-RU\data.txt";
Console.WriteLine($"{russianMessage}:\n\t\t{russianLocation}\n");

View English output:                                                                                                 │
│               c:\Exercise\ACME\data.txt                                                                                              │
│                                                                                                                      │
│ Посмотреть русский вывод:                                                                                            │
│               c:\Exercise\ACME\ru-RU\data.txt                                                                                        │
│                                                                                                                      │
│

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值