C#中的String.Format方法

string.Format

一 功能说明

string.format的功能是可以将字符串中特殊字符进行替换,来达到格式化字符串的功能


二 功能简介

String.Format常用方法定义:
2.1 String.Format(字符串,替换对象) 将指定的 “字符串” 中的格式项({0})替换为指定的 “替换对象”
2.2 String.Format(字符串,替换对象列表)将指定 “字符串” 中的格式项({0}{1} {2} {3})替换为指定数组中相应 “替换对象”
2.3 String.Format(字符串,替换对象,替换对象) 将指定的 “字符串” 中的格式项({0} {1})替换为两个指定的 “替换对象”
2.4 String.Format(字符串,替换对象,替换对象,替换对象,替换对象…) 将指定的 “字符串” 中的格式项替换为多个指定的 “替换对象”


字符

类型说明

举例说明

输出
C(c)

货币

string.Format(“{0:C3}”, 2)

$2.000
D(d)

十进制

string.Format(“{0:D3}”, 2)

002
G(g)

常规

string.Format(“{0:G}”, 2)

2
N(n)

用分号隔开的数字

string.Format(“{0:N}”, 250000)

250,000.00
X(x)

十六进制

string.Format(“{0:X000}”, 12)

C


三 举例说明


3.1 字符串格式化:

string s1 = “maomao365.com”;
string s2 = “linux28.com”;
Response.Write(String.Format(“it is {0},other web is {1}”, s1, s2));

Response.Write(String.Format(“it is {0},other web is {1}”, “maomao365.com”, “linux28.com”));



3.2 输出两位小数的字符串

doublue s1 = 23.542;
string express =”数字格式化:{0:0.00}”:
Response.Write(String.Format(express,s1);

3.3 格式化货币

string.Format(“{0:C}”,0.2)
//输出
$0.2
货币四舍五入
string.Format(“{0:C1}”,88.15)
//输出
¥88.2(会自动四舍五入)



3.4 用分号隔开的数字,并指定小数点后的位数

string.Format(“{0:N}”,15200) //结果为:15,200.00 (默认为小数点后面两位)
string.Format(“{0:N3}”,15200.2843) //结果为:15,200.284 (自动四舍五入)

3.5 格式化百分比

string.Format(“{0:P}”, 0.53212) //结果为:53.21% (默认保留百分的两位小数)
string.Format(“{0:P1}”, 0.53252) //结果为:53.3% (自动四舍五入)

3.6 占位符

string.Format(“{0:0000.00}”, 1523.882) //结果为:1523.88
string.Format(“{0:0000.00}”, 345.231) //结果为:0345.23
string.Format(“{0:###.##}”, 1523.882) //结果为:1523.88
string.Format(“{0:####.#}”, 152.3) //结果为:152

3.7 日期格式化

string.Format(“{0:d}”,System.DateTime.Now) //结果为:2015-11-19
string.Format(“{0:D}”,System.DateTime.Now) //结果为:2015年11月19日
string.Format(“{0:f}”,System.DateTime.Now) //结果为:2015年11月19日 18:00
string.Format(“{0:F}”,System.DateTime.Now) //结果为:2015年11月19日 18:00:52
string.Format(“{0:g}”,System.DateTime.Now) //结果为:2015-11-19 18:00
string.Format(“{0:G}”,System.DateTime.Now) //结果为:2015-11-19 18:00:27
string.Format(“{0:m}”,System.DateTime.Now) //结果为:11月19日
string.Format(“{0:t}”,System.DateTime.Now) //结果为:18:00
string.Format(“{0:T}”,System.DateTime.Now) //结果为:18:00:50


3.8 小数点后位数限制

//小数点后 保持两位小数
String.Format(“{0:0.00}”,898.235); // “898.24” (保留两位小数 自动四舍五入)
String.Format(“{0:0.00}”,898.2); // “898.20” (小数位不够,自动在后补零)
String.Format(“{0:0.00}”,898.0); // “898.00” (小数位不够,自动在后补零)


3.9 采用# 占位符 位数不能超过最大,超过最大位数部分 采用四舍五入,不够位数 不进行补位操作,无意义的零值都自动取消

String.Format(“{0:0.##}”,898.235); // “898.24” //位数多余会
String.Format(“{0:0.##}”,898.2); // “898.2”
String.Format(“{0:0.##}”,898.0); // “898”

4.0 小数点前的位数 (多余的位数不会丢弃,少于定义的位数,会被自动在前面补零)

String.Format(“{0:00.0}”,898.235); // “898.2”
String.Format(“{0:00.0}”,98.235); // “98.2”
String.Format(“{0:00.0}”,8.235); // “08.2”
String.Format(“{0:00.0}”,-8.235); // “-08.2”

4.1 千位分隔符

String.Format(“{0:0,0.0}”,78912.32); // “78,912.3”
String.Format(“{0:0,0}”,781234.2); // “781,234”

4.2 零和#的用法 零会采用补齐的方式 #不会采用补齐的方式 ,会舍弃不作用的零

String.Format(“{0:0.0}”,0.0); // “0.0”
String.Format(“{0:0.#}”,0.0); // “0”
String.Format(“{0:#.0}”,0.0); // “.0”
String.Format(“{0:#.#}”,0.0); // “”

4.3 用空格对其数字

String .Format( “{0,10:0.0}”,789123.123); // ” 789123.1″ //前面补空格
String .Format( “{0,-10:0.0}”,789123.123); // “789123.1 ” //后面补空格
String .Format( “{0,10:0.0}”,-789123.123); // ” -789123.1″ //前面补空格
String .Format( “{0,-10:0.0}”,-789123.123); // “-789123.1 ” //后面补空格


四 趣味实验

String .Format( “{0:数字是 0.0}” , 87.6); // “数字是 87.6”
String .Format( “{0:0aaa.bbb0}” , 12.3);