一、定义
String.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项。
代码
namespace sample3_3StringPut
{
class Program
{
static void Main(string[] args)
{
double x = 3456.78;
string s0 = string.Format("{0,10}:F3",x);
string s1=string.Format("{0,10:F3}",x);
Console.WriteLine(s0);
Console.WriteLine(s1);
Console.WriteLine("{0,10:F3},{1,10:F3}",x,x);
Console.ReadKey();
}
}
}将输出
3456.78:F3
3456.780
3456.780, 3456.780
再如:
(1)
代码如下 | 复制代码 |
string p1 = "Jackie"; string p2 = "Aillo"; Response.Write(String.Format("Hello {0}, I'm {1}", p1, p2)); |
(2)
代码如下 | 复制代码 |
Response.Write(String.Format("Hello {0}, I'm {1}", "Jackie", "Aillo")); |
这二者的效果是一样的。都是将最后面的两项的值分别替换第一项的{0}和{1}。
输出的结果是:Hello Jackie, I'm Aillo
(3)
代码如下 | 复制代码 |
12345.ToString("n"); //生成 12,345.00 |
二、String.Format的多格式定义:
这里所谓的多格式是指一个格式项中可以定义1~3个格式参数,每种格式参数用分号(;)隔开。带2个和3个格式参数的格式项所对应的值必须是数值类型的,这样才能判断是否为负数、正数、零。
带1个格式参数:
代码如下 | 复制代码 |
//以科学计数法的格式输出 |
带2个格式参数:
/*当格式项对应的值为非负数,则选择第一种格式;值为负数则选第二种格式*/
代码如下 | 复制代码 |
double p1 = 10000; double p2 = -2420.50; Response.Write(String.Format("{0:#,###0.00;#,###0.000;}<BR>", p1)); Response.Write(String.Format("{0:#,###0.00;#,###0.000;}", p2)); |
带3个格式参数:
/*当格式项对应的值为正数则选择第一张格式;
负数则为第二中格式;
值等于零则为第三种格式*/
代码如下 | 复制代码 |
1double p1 = 10000; double p2 = -2420.50; double p3 = 0.00; Response.Write(String.Format("{0:#,###0.00;#,###0.000;#,###0.0000}<BR>", p1)); Response.Write(String.Format("{0:#,###0.00;#,###0.000;#,###0.0000}<BR>", p3)); Response.Write(String.Format("{0:#,###0.00;#,###0.000;#,###0.0000}", p2)); |
字符
说明
示例
输出
C货币 string.Format("{0:C3}", 2)$2.000D十进制 string.Format("{0:D3}", 2)002E科学计数法1.20E+0011.20E+001G常规 string.Format("{0:G}", 2)2N用分号隔开的数字 string.Format("{0:N}", 250000)250,000.00X十六进制 string.Format("{0:X000}", 12)C string.Format("{0:000.000}", 12.2)012.200