C# 字符串格式化
介绍
在 C# 中,字符串格式化是一种将变量、表达式或对象的值插入到字符串中的方法。通过格式化字符串,你可以创建动态内容,使输出更具可读性和灵活性。C# 提供了多种字符串格式化方法,包括 string.Format
、插值字符串(interpolated strings)以及 ToString
方法的格式化选项。
本文将逐步介绍这些方法,并通过代码示例和实际案例帮助你掌握字符串格式化的技巧。
基本语法
1. 使用 string.Format
string.Format
是 C# 中最传统的字符串格式化方法。它使用占位符 {0}
、{1}
等来插入变量值。
csharp
string name = "Alice";
int age = 25;
string message = string.Format("My name is {0} and I am {1} years old.", name, age);
Console.WriteLine(message);
输出:
My name is Alice and I am 25 years old.
备注
占位符中的数字表示参数的索引,从 0
开始。确保占位符的数量与参数的数量匹配。
2. 插值字符串(Interpolated Strings)
插值字符串是 C# 6.0 引入的一种更简洁的格式化方法。它使用 $
符号和花括号 {}
直接嵌入变量。
csharp
string name = "Bob";
int score = 95;
string message = $"Hello, {name}! Your score is {score}.";
Console.WriteLine(message);
输出:
Hello, Bob! Your score is 95.
提示
插值字符串不仅更简洁,还支持表达式和方法的直接调用。
3. 使用 ToString
方法
ToString
方法可以用于格式化数字、日期等类型。它接受一个格式化字符串作为参数。
csharp
double price = 19.99;
string formattedPrice = price.ToString("C"); // 格式化为货币
Console.WriteLine(formattedPrice);
输出:
$19.99
格式化选项
1. 数字格式化
C# 提供了多种数字格式化选项,例如货币、百分比、小数位数等。
csharp
double number = 1234.5678;
Console.WriteLine(number.ToString("F2")); // 保留两位小数
Console.WriteLine(number.ToString("P")); // 百分比格式
Console.WriteLine(number.ToString("N2")); // 千位分隔符,保留两位小数
输出:
1234.57
123456.78 %
1,234.57
2. 日期和时间格式化
日期和时间格式化可以通过 ToString
方法实现。
csharp
DateTime now = DateTime.Now;
Console.WriteLine(now.ToString("yyyy-MM-dd")); // 年-月-日
Console.WriteLine(now.ToString("hh:mm:ss tt")); // 时:分:秒 AM/PM
输出:
2023-10-05
03:45:22 PM
3. 自定义格式化
你可以使用自定义格式化字符串来满足特定需求。
csharp
int number = 123;
Console.WriteLine(number.ToString("00000")); // 补零到5位
输出:
00123
实际应用场景
1. 生成动态消息
在日志记录或用户通知中,字符串格式化非常有用。
csharp
string user = "Charlie";
DateTime loginTime = DateTime.Now;
string logMessage = $"User {user} logged in at {loginTime:yyyy-MM-dd HH:mm:ss}.";
Console.WriteLine(logMessage);
输出:
User Charlie logged in at 2023-10-05 15:50:30.
2. 格式化财务数据
在财务应用中,格式化货币和百分比是常见需求。
csharp
double revenue = 1500000;
double growthRate = 0.15;
Console.WriteLine($"Revenue: {revenue:C}");
Console.WriteLine($"Growth Rate: {growthRate:P}");
输出:
Revenue: $1,500,000.00
Growth Rate: 15.00 %
总结
C# 字符串格式化是处理动态字符串的强大工具。通过 string.Format
、插值字符串和 ToString
方法,你可以轻松创建格式化的字符串输出。无论是数字、日期还是自定义格式,C# 都提供了丰富的选项来满足你的需求。
附加资源与练习
练习
- 使用插值字符串创建一个包含当前日期和时间的欢迎消息。
- 格式化一个浮点数,使其显示为带有千位分隔符的两位小数。
- 尝试使用
string.Format
和插值字符串分别实现相同的输出,比较两者的优缺点。
进一步学习
- 官方文档:C# 字符串格式化
- 深入了解数字和日期格式化选项。
警告
确保在格式化字符串时避免占位符与参数数量不匹配的错误。