C#中的字符串格式化详解

发布时间 2023-06-21 10:20:50作者: zhaotianff

在日常使用中,对于字符串的格式化这块也仅止步于能用就行。如日期格式化,小数点格式化等。

有时在MSDN上查看一些示例代码时,会看到一些没有见过的字符串格式化输出,这里做个详细的总结,

以后需要用时,直接到这里来看就好了。

 

说明:本文全部以字符串内插(C# 6.0)的形式实现,而不是使用String.Format()函数。

 

首先我们了解一下字符串内插的基本使用:

在字符串前使用$符号,然后在{}中直接使用表达式,像下面这样

1 {<interpolationExpression>}

 

测试代码:

1             int age = 18;
2             float weight = 50;
3             Console.WriteLine($"Age : {age} Y");
4             Console.WriteLine($"Weight : {weight} KG");   

输出 :

Age : 18 Y
Weight : 50 KG

 

如何指定格式字符串:

在表达式后加:号,然后输入格式字符串,像下面这样

1 {<interpolationExpression>:<formatString>}

 

测试代码:

1 var now = DateTime.Now;
2 Console.WriteLine($"{now:yyyy年MM月dd日 HH时:mm分:ss秒:ffff毫秒}");

输出 

2023年06月21日 10时:02分:53秒:3104毫秒

 

如何设置字段宽度和对齐方式

在表达式后加,号,然后输入输入字段的宽度。如果输入的是正值,则是右对齐。反之左对齐。

像下面这样

1 {<interpolationExpression>,<alignment>}

 

测试代码:

1             var triangle = "Triangle";
2             var circle = "Circle";
3 
4             Console.WriteLine($"Shape left   align :{triangle,-20}|{circle,-20}");
5             Console.WriteLine($"Shape right  align :{triangle,20}|{circle,20}");
6             Console.WriteLine($"Shape custom align :{triangle,20}|{circle,-20}");

 

输出: