引言
字符串是編程中使用較廣的一種數(shù)據(jù),它由數(shù)字、字母、下劃線等組成。在使用過(guò)程中會(huì)對(duì)字符串進(jìn)行格式化。在C#語(yǔ)言中,我們可以String.Format方法對(duì)字符串格式化。
String.Format
使用String.Format可以將對(duì)象、變量、表達(dá)式的值插入到另一個(gè)字符串。在插入時(shí)可以設(shè)置其格式、對(duì)齊和間距輸出。
格式項(xiàng)
string.Format("{index[,alignment][:formatString]}",args)
alignment:指定自變量的字段的總長(zhǎng)度及對(duì)齊方式。formatString:指定輸出字符串結(jié)果的格式。
常用實(shí)例
1、插入字符串:將一個(gè)或多個(gè)變量的值插到字符串的對(duì)應(yīng)位置里。// 使用 string.Format將二個(gè)變量值拼接在一起
string fileName = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "config.ini");
// 在控制臺(tái)輸出變量fileName的值
Console.WriteLine(fileName);
2、日期格式化:將日期類型數(shù)據(jù)按一定的格式顯示。格式符 | 描述 | 輸出效果 |
---|
d | 短日期模式 | 2024/5/4 |
D | 長(zhǎng)日期模式 | 2024年5月4日 |
f | 完整日期或短時(shí)間模式 | 2024年5月4日 9:54 |
F | 完整日期或長(zhǎng)時(shí)間模式 | 2024年5月4日 9:54:58 |
g | 常規(guī)日期或短時(shí)間模式 | 2024/5/4 9:54 |
G | 常規(guī)日期或長(zhǎng)時(shí)間模式 | 2024/5/4 9:54:58 |
M或m | 月或日模式 | 5月4日 |
t | 短時(shí)間模式 | 9:54 |
T | 長(zhǎng)時(shí)間模式 | 9:54:58 |
Y或y | 年月模式 | 2024年5月 |
// 使用d格式符 輸出 2024/5/4
Console.WriteLine(string.Format("{0:d}", System.DateTime.Now));
// 使用D格式符 輸出 2024年5月4日
Console.WriteLine(string.Format("{0:D}", System.DateTime.Now));
// 使用f格式符 輸出 2024年5月4日 9:47
Console.WriteLine(string.Format("{0:f}", System.DateTime.Now));
// 使用F格式符 輸出 2024年5月4日 9:47:51
Console.WriteLine(string.Format("{0:F}", System.DateTime.Now));
// 使用g格式符 輸出 2024/5/4 9:47
Console.WriteLine(string.Format("{0:g}", System.DateTime.Now));
// 使用G格式符 輸出 2024/5/4 9:47:51
Console.WriteLine(string.Format("{0:G}", System.DateTime.Now));
// 使用m格式符 輸出 5月4日
Console.WriteLine(string.Format("{0:m}", System.DateTime.Now));
// 使用t格式符 輸出 9:47
Console.WriteLine(string.Format("{0:t}", System.DateTime.Now));
// 使用T格式符 輸出 9:47:51
Console.WriteLine(string.Format("{0:T}", System.DateTime.Now));
// 使用y或Y格式符 2024年5月
Console.WriteLine(string.Format("{0:y}", System.DateTime.Now));
使用格式符C,它的輸出效果與我們操作系統(tǒng)的默認(rèn)格式有關(guān)。下面是示例效果:
// 使用C格式符 輸出 ¥22.15,¥18.12
Console.WriteLine(string.Format("{0:C},{1:C}", 22.15, 18.12));
// 使用C格式符帶指定位數(shù) 輸出 ¥21.3,¥20.80 此次的21.26截取會(huì)自動(dòng)四舍五入位21.3
Console.WriteLine(string.Format("{0:C1},{1:C3}", 21.26, 20.8));
格式符 | 描述 | 輸出效果 |
---|
D | 格式化十進(jìn)制的數(shù)字 | 021 |
G | 常規(guī) | 20 |
N | 用分號(hào)隔開的數(shù)字 | 150,000.00 |
P | 格式百分比 | 20.48% |
// 使用 D 格式符 固定的位數(shù)位3 輸出 021,位數(shù)不夠以0補(bǔ)充
Console.WriteLine(string.Format("{0:D3}", 21));
// 使用 D 格式符 固定的位數(shù)位2 輸出 142,位數(shù)超數(shù)指定為,則按原數(shù)字輸出
Console.WriteLine(string.Format("{0:D2}", 142));
// 使用 N 格式符 輸出 132.00 默認(rèn)為小數(shù)點(diǎn)后面兩位
Console.WriteLine(string.Format("{0:N}", 132));
// 使用 N 格式符指定保留小數(shù)位 輸出 123.246 自動(dòng)四舍五入
Console.WriteLine(string.Format("{0:N3}", 123.2458));
// 使用 P 格式符 輸出 21.58% 默認(rèn)為小數(shù)點(diǎn)后面兩位 自動(dòng)四舍五入
Console.WriteLine(string.Format("{0:P}", 0.21583));
// 使用 P 格式符指定保留小數(shù)位 輸出 21.6% 自動(dòng)四舍五入
Console.WriteLine(string.Format("{0:P1}", 0.21583));
可以使用"0"零占位符(位數(shù)不夠則以0補(bǔ)充)或"#"數(shù)字占位符,如下面的示例效果:// 使用 0 占位符 輸出 1346.23
Console.WriteLine(string.Format("{0:0000.00}", 1346.23));
// 使用 0 占位符 輸出 0154.03 超出小數(shù)被截取會(huì)自動(dòng)四舍五入
Console.WriteLine(string.Format("{0:0000.00}", 154.029));
// 使用 # 數(shù)字占位符 輸出 13295.02 超出小數(shù)被截取會(huì)自動(dòng)四舍五入
Console.WriteLine(string.Format("{0:###.##}", 13295.019));
// 使用 # 數(shù)字占位符 輸出124 小數(shù)位0,則不被顯示
Console.WriteLine(string.Format("{0:####.#}", 124.029));
小結(jié)
以上是C# 使用String.Format對(duì)字符串格式化的介紹,對(duì)以.NET 6及以上,我們還能使用特殊符號(hào)$的方式。
該文章在 2024/7/24 23:10:01 編輯過(guò)