在c#中,字符串格式化是一种将变量或表达式插入到字符串中的方法,常用于生成动态文本、输出日志、显示用户信息等。c#提供了多种字符串格式化方式,以下是几种常用的方法:
1. string.format 方法
这是最传统的字符串格式化方式,使用占位符 {0}、 {1} 等来表示参数位置。
string name = "张三";
int age = 25;
string message = string.format("我的名字是{0},今年{1}岁。", name, age);
console.writeline(message); // 输出:我的名字是张三,今年25岁。2. 插值字符串(interpolated strings)——推荐方式(c# 6.0+)

使用 $ 符号,可以直接在字符串中嵌入变量,语法更简洁清晰。
string name = "李四";
int age = 20;
string message = $"我的名字是{name},今年{age}岁。";
console.writeline(message); // 输出:我的名字是李四,今年20岁。你还可以在 {} 中进行简单表达式运算:
string message = $"五年后,我将{age + 5}岁。"; // 输出:五年后,我将35岁。3. 复合格式化(composite formatting)

与 string.format 类似,也可用于 console.writeline 等方法:
console.writeline("姓名:{0},年龄:{1}", name, age);4. 格式说明符(format specifiers)
可以对数字、日期等进行特定格式化,例如:
double price = 1234.567;
string formatted = $"价格:{price:c}"; // 货币格式:¥1,234.57(根据区域设置)
string percent = $"{0.123:p}"; // 百分比:12.30%
string date = $"{datetime.now:yyyy-mm-dd}"; // 日期格式:2025-04-05常用格式符:
c:货币
d:十进制整数(常用于补零)
f:固定小数位数
n:带千位分隔符的数字
p:百分比
d、t、yyyy-mm-dd 等:日期时间 示例:
int num = 42;
console.writeline($"{num:d5}"); // 输出:00042(5位宽,前面补零)5. tostring() 方法配合格式字符串
基本类型支持 tostring(string format) 方法:
double value = 1234.56;
string s = value.tostring("n2"); // 输出:1,234.566. stringbuilder 中的格式化
当需要高效拼接大量字符串时,可结合 stringbuilder 使用 appendformat:
var sb = new stringbuilder();
sb.appendformat("欢迎 {0},您有 {1} 条未读消息。", name, 5);
console.writeline(sb.tostring());总结对比:
| 方法 | 优点 | 推荐场景 | |------|------|----------| | string.format | 兼容旧版本,适合复杂逻辑 | .net framework 项目 | | 插值字符串 $"" | 语法简洁、易读 | 推荐现代c#开发首选 | | 复合格式化 | 直接输出,无需变量 | console.writeline 等 | | tostring(format) | 精确控制数值格式 | 数字、日期格式化 |
? 建议:在现代c#开发中,优先使用插值字符串($""),它不仅可读性强,还支持表达式和格式化说明符,例如:
$"今天的日期是 {datetime.now:yyyy年mm月dd日},温度是 {25.6:f1}℃。"
这样代码更直观、易于维护。
以上就是c#中实现字符串格式化的几种常用方法的详细内容,更多关于c#字符串格式化方式的资料请关注代码网其它相关文章!
发表评论