C#string.Format的一些使用

C#中的string.Format方法是一个用于格式化字符串的功能强大的方法。它允许您通过将占位符替换为实际的值来创建格式化的字符串。

一、基本语法是:

cs 复制代码
string.Format(format, arg0, arg1, arg2, ...)

其中,

  • format是一个字符串,其中包含要格式化的文本和占位符。占位符使用花括号 {} 括起来,并可以包含格式说明符,用于定义值的显示方式。
  • arg0, arg1, arg2, ... 是要插入到格式字符串中的参数。这些参数将按照顺序替换占位符

二、基本用法:

1、 把相关参数格式化到指定位置。

cs 复制代码
string name = "小明";
int age = 25;
string message = string.Format("我是{0},今年{1}岁。", name, age);
Console.WriteLine(message);// 我是小明,今年25岁。

2、格式化数字:

cs 复制代码
int number = 12345;
string formattedNumber = string.Format("{0:N}", number);
Console.WriteLine(formattedNumber);// 12,345.00

3、使用命名参数:

cs 复制代码
string firstName = "王";
string lastName = "小小";
string fullName = string.Format("我的名字是{firstName} {lastName}。", new { firstName, lastName });
Console.WriteLine(fullName);// 我的名字是王小小。

4、格式化日期:

cs 复制代码
DateTime currentDate = DateTime.Now;
string formattedDate = string.Format("Today is {0:yyyy-MM-dd}.", currentDate);
Console.WriteLine(formattedDate);//Today is 2023-11-23.

三、常见的一些占位符的使用。

1、{0} - 将第一个参数的值插入到占位符中,{1},{2}...类推。

cs 复制代码
string name = "John";
string message = string.Format("Hello, {0}!", name);
Console.WriteLine(message); //Hello, John!

2、{``{0:#.##} - 将第一个参数的值按照指定的数值格式进行格式化

cs 复制代码
double number = 123.456;
string formattedNumber = string.Format("The number is {0:0.00}.", number);
Console.WriteLine(formattedNumber); //The number is 123.46.

3、{0,-10},{0,10} - 将第一个参数的值插入到占位符中,并左对齐、右对齐,总宽度为10个字符

cs 复制代码
string name = "Bob";
string formattedName = string.Format("Name: {0,-10}.", name);//左对齐
Console.WriteLine(formattedName); //Name: Bob       .

4、{0:G} - 将第一个参数的值按照一般格式进行格式化

cs 复制代码
DateTime now = DateTime.Now;
string formattedDate = string.Format("Current date and time: {0:G}.", now);
Console.WriteLine(formattedDate); //Current date and time: 11/23/2023 9:28:46 PM.

5、{``{0:C} - 将第一个参数的值按照货币格式进行格式化(输出人民币还是美元跟系统有关)

cs 复制代码
decimal price = 99.99m;
string formattedPrice = string.Format("Price: {0:C}.", price);
Console.WriteLine(formattedPrice); // Price: $99.99.

6、{0:E} - 将第一个参数的值按照科学计数法格式进行格式化

cs 复制代码
double number = 12345.6789;
string formattedNumber = string.Format("Number: {0:E}.", number);
Console.WriteLine(formattedNumber); //Number: 1.234568E+004.

7、{0:X} - 将第一个参数的值按照十六进制格式进行格式化

cs 复制代码
int number = 255;
string formattedNumber = string.Format("Number: {0:X}.", number);
Console.WriteLine(formattedNumber); //Number: FF.

8、{0:P} - 将第一个参数的值按照百分比格式进行格式化

9、{0:'text'} - 将第一个参数的值插入到占位符中,并使用指定的文本包围

10、{0:0} - 将第一个参数的值按照整数格式进行格式化

11、一些格式化日期的占位符的使用:

  • {0:D} - 将第一个参数的值按照长日期格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedDate = string.Format("Today's date: {0:D}.", now);
Console.WriteLine(formattedDate); //Today's date: Sunday, November 23, 2023.
  • {0:d} - 将第一个参数的值按照短日期格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedDate = string.Format("Today's date: {0:d}.", now);
Console.WriteLine(formattedDate); //Today's date: 11/23/2023.
  • {0:T} - 将第一个参数的值按照长时间格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedTime = string.Format("Current time: {0:T}.", now);
Console.WriteLine(formattedTime); //Current time: 9:28:46 PM.
  • {0:t} - 将第一个参数的值按照短时间格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedTime = string.Format("Current time: {0:t}.", now);
Console.WriteLine(formattedTime); //Current time: 9:28 PM.
  • {0:F} - 将第一个参数的值按照完整日期和时间格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedDateTime = string.Format("Current date and time: {0:F}.", now);
Console.WriteLine(formattedDateTime); //Current date and time: Sunday, November 23, 2023 9:28:46 PM.
  • {0:M} - 将第一个参数的值按照月份和日期格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedDate = string.Format("Today's date: {0:M}.", now);
Console.WriteLine(formattedDate); //Today's date: November 23.
  • {0:Y} - 将第一个参数的值按照年份和月份格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedDate = string.Format("Current month and year: {0:Y}.", now);
Console.WriteLine(formattedDate); //Current month and year: November 2023.
  • {0:y} - 将第一个参数的值按照年份和月份格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedDate = string.Format("Current month and year: {0:y}.", now);
Console.WriteLine(formattedDate); //Current month and year: November 2023.
  • {0:g} - 将第一个参数的值按照一般短日期和时间格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedDateTime = string.Format("Current date and time: {0:g}.", now);
Console.WriteLine(formattedDateTime); //Current date and time: 11/23/2023 9:28 PM.
  • {0:yyyy-MM-dd} ,{0:yyyyMMddHHmmss}- 将第一个参数的值按照指定的日期格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedDate = string.Format("Today's date: {0:yyyy-MM-dd}.", now);//Today's date: 2023-11-23.
string formattedDate1 = string.Format("{0:yyyyMMdd}.", now);//20231123212846
  • {0:HH:mm:ss} - 将第一个参数的值按照指定的时间格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedTime = string.Format("Current time: {0:HH:mm:ss}.", now);
Console.WriteLine(formattedTime); //Current time: 21:28:46.
  • {0:dddd, MMMM dd, yyyy} - 将第一个参数的值按照指定的完整日期格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedDate = string.Format("Today's date: {0:dddd, MMMM dd, yyyy}.", now);
Console.WriteLine(formattedDate); //Today's date: Sunday, November 23, 2023.
  • {0:hh:mm tt} - 将第一个参数的值按照指定的12小时制时间格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedTime = string.Format("Current time: {0:hh:mm tt}.", now);
Console.WriteLine(formattedTime); //Current time: 09:28 PM.
  • {0:yyyy-MM-dd HH:mm:ss} - 将第一个参数的值按照指定的日期和时间格式进行格式化
cs 复制代码
DateTime now = DateTime.Now;
string formattedDateTime = string.Format("Current date and time: {0:yyyy-MM-dd HH:mm:ss}.", now);
Console.WriteLine(formattedDateTime); //Current date and time: 2023-11-23 21:28:46.
相关推荐
小的时候可菜了2 分钟前
JS 异步的本质:从单线程到 thenable(一条进化链)
开发语言·前端·javascript
可乐鸡翅yeah_10 分钟前
hls.js 配置 loadStartPosition,点播起始播放位置踩坑
开发语言·javascript·网络协议·ecmascript·m3u8在线
en.en..24 分钟前
Linux 进程退出exit(函数)
java·开发语言·算法
Cx330❀27 分钟前
【Qt 进阶指南】详解 Qt 常用标准对话框与主窗口组件架构
开发语言·qt·ui·性能优化·架构·图形渲染
Light Gao27 分钟前
Encoder 与 Decoder 详解:从 Embedding 到 Seq2Seq 的完整数据流
java·开发语言·embedding
HZZD_HZZD28 分钟前
弱网下CoAP还省吗?合众致达Cat.1电表90天实测:MQTT重连流量占52%、续航差距从38%拉大到73%
开发语言·物联网·php·腾讯云
web打印社区32 分钟前
Windows 网页静默打印设置步骤:客户端、防火墙与联调清单
开发语言·前端·javascript·chrome·pdf·ecmascript
小师兄吃牛肉41 分钟前
什么是R语言?如何快速学习R语言
开发语言·学习·r语言
Evand J1 小时前
【MATLAB例程】三维快速扩展随机树(RRT)路径规划与到达角(AOA)、到达时间差(TDOA)融合定位,附下载链接
开发语言·matlab·代码·定位·例程
执明wa1 小时前
Android RecyclerView 实战:点击频道栏切换对应内容
android·开发语言·windows·microsoft·android studio