前面我们讲特殊符号的时候,我们有讲过 $ 符号,它就是一个简化的格式化输出的符号。今天我们来看看字符串中的 Fromat 方法,可以支持那些种类的格式化输出。
首先我们来看一个最基本的格式化输出:
using System;
namespace ConsoleApp26
{
class Program
{
static void Main(string[] args)
{
int price = 100;
Console.WriteLine(string.Format("The item costs ${0}", price));
}
}
}
运行结果:
The item costs $100
看起来,没有 $ 符号方便。
我们接着看下面的示例:
using System;
namespace ConsoleApp26
{
class Program
{
static void Main(string[] args)
{
int price = 100;
Console.WriteLine(string.Format("The item costs {0:c}", price)); // 添加了一个:c
}
}
}
运行结果:
The item costs $100.00
是不是不太一样了,我们在 { } 里面添加了一个 : 和 C,我们称这个 c 为标准数字格式说明符。这个说明符,不止 称 c 一个,有好多,具体可以查看微软官网(https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings) 。
我这里只是简单介绍其中的一部分。
首先,就是我们前面示例中的 C,既可以大写,也可以小写,用于表示货币,货币的类型,根据你操作系统的不同,显示的类型不同。我是英文操作系统,所以这里显示的 $。
我们可以通过 N 将数字分段,增加可读性。
using System;
namespace ConsoleApp26
{
class Program
{
static void Main(string[] args)
{
int price = 10000000;
Console.WriteLine(string.Format("The item costs ${0:n}", price));
}
}
}
运行结果:
The item costs $10,000,000.00
我们可以通过 P,以百分比的形式显示浮点数:
using System;
namespace ConsoleApp26
{
class Program
{
static void Main(string[] args)
{
float percent = 0.5f;
Console.WriteLine(string.Format("The task is {0:p}", percent));
}
}
}
运行结果:
The task is 50.00%
除了支持标准数字格式说明符外,C# 还支持标准日期和时间格式字符串、标准 TimeSpan 格式字符串等等。
下面我们来看一些标准日期和时间格式字符串(关于标准 TimeSpan 格式字符串以及其他相关的,感兴趣的可以查看微软官方网站。)。
关于标准日期和时间格式字符串详细内容,可以查看下面连接:
https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-date-and-time-format-strings
下面我们来看一些示例:
using System;
namespace ConsoleApp26
{
class Program
{
static void Main(string[] args)
{
\\这个示例,我们是通过 DateTime.Now 方法,获取的系统当前日期
Console.WriteLine(string.Format("it's {0:d}", DateTime.Now));
}
}
}
运行结果:
it's 9/30/2021
我们也可以手动指定:
using System;
namespace ConsoleApp26
{
class Program
{
static void Main(string[] args)
{
DateTime date = new DateTime(2021, 9, 30);
Console.WriteLine(string.Format("it's {0:d}", date));
}
}
}
输出的结果和前面一样:
it's 9/30/2021