String.Format是字符串类最常用的一个静态方法,它可以使用“{0}”之类的格式占位符来格式化字符串,最简单的使用方式如下:
string s=String.Format("x={0},y={1},z={2}",x,y,z);
你会发现上面这种形式和我们以前使用的Console.WriteLine有相似之处,实际上两种使用相同的格式化规则,都可以格式化字符串,区别是前者是返回格式化的字符串,而后者是直接输出格式化的字符串。两者都使用系统提供的格式规则,规则如下:
{index[,alignment][:formatString]}
其中index是从零开始的整数,指示对象列表中要格式化的元素;alignment为可选整数,指示包含格式化值的区域的最小宽度,如果格式化值的长度小于alignment,则用空格填充该区域,如果alignment为负,则格式化的值将在该区域中左对齐;如果alignment为正,则格式化的值将右对齐。如果没有指定alignment,则该区域的长度为格式化值的长度,如果指定alignment,则需使用逗号和index分隔。formatString是可选的格式说明符字符串,常用的有日期格式符和数字格式符两种,我们前面使用过的“{0,2:F}”就属于数字格式符,它指定浮点型保留两位小数。String.Format使用示例如下:
using System;
class Sample
{
static DateTime thisDate=DateTime.Now;
public static void Main()
{
string s=String.Empty;
Console.WriteLine("标准数字格式化:");
s=String.Format(
"(C)Currency: {0:C}\n"+/*货币*/
"(D)Decimal: {0:D}\n"+ /*十进制数*/
"(E)Scientific: {1:E}\n"+ /*科学计数法*/
"(F)Fixed point: {1:F}\n"+ /*固定点*/
"(G)General: {1:G}\n"+ /*常规*/
"(default): {0} \n"+ /*默认*/
"(N) Number: {0:N}\n"+ /*数字*/
"(P) Percent: {1:P}\n" +/*百分比*/
"(X) Hexadecimal: {0:X}\n", /*十六进制*/
-1239877,-123.457f);
Console.WriteLine(s);
Console.WriteLine("标准日期格式化:");
s=String.Format(
"(d) Short date : {0:d}\n"+ /*短日期模式*/
"(D)Long date: {0:D}\n" + /*长日期模式*/
"(t)Short time: {0:t}\n" + /*短时间模式*/
"(T) Long time: {0:T}\n" +/*长时间模式*/
"(f)Full date/short time: {0:f}\n" +/*完整日期短时间*/
"(F)Full date/long time: {0:F}\n" +/*完整日期长时间*/
"(g)General date/short time:{0:g}\n"+/*常规日期短时间*/
"(G)General date/long time: {0:G}\n"+ /*常规日期长时间*/
"(default): {0} \n" + /*默认模式*/
"(M) Month {0:M}\n" + /*月日模式*/
"(R) RFC1123: {0:R}\n"+/*RFC1123模式*/
"(U)Universal sortable: {0:U}\n" +/*通用的可排序日期模式*/
"(Y)Year: {0:Y}\n", /*年月模式*/
thisDate);
Console.WriteLine(s);
}
}
输出结果:
(C)Currency: ¥-1,239,877.00
(D) Decimal: -1239877
(E) Scientific: -1.234570E+002
(F) Fixed point: -123.46
(G) General: -123.457
(default): -1239877
(N) Number: -1,239,877.00
(P) Percent: -12,345.70%
(X) Hexadecimal: FFED14BB
标准日期格式化:
(d) Short date: 2007-11-21
(D)Long date: 2007年11月21日
(t)Short time: 21:14
(T)Long time: 21:14:22
(f)Full date/short time: 2007年11月21日 21:14
(F)Full date/long time: 2007年11月21日 21:14:22
(g)General date/short time: 2007-11-21 21:14
(G) General date/long time: 2007-11-21 21:14:22
(default): 2007-11-21 21:14:22
(M) Month: 11月21日
(R) RFC1123: Wed,21 Mov 2007 21:14:22 GMT
(U)Universal sortable: 2007年11月21日 13:14:22
(Y) Year: 2007年11月
我们说一个普通的字符串对象是不可修改的,在很多情况下我们都需要一个能够修改的字符串对象。此时你就需要使用另外一种可变字符串,就是StringBuilder字符串。普通字符串修改方法往往返回一个新的实例,而不是对其自身进行修改,而StringBuilder字符串在创建以后,可以方便的通过追加、移除、替换或插入等操作直接对其自身进行修改。如果你在程序中已经有了普通字符串对象,你可以直接使用其创建StringBuilder对象
String.Format是字符串类最常用的一个静态方法,它可以使用“{0}”之类的格式占位符来格式化字符串,最简单的使用方式如下:
string s=String.Format("x={0},y={1},z={2}",x,y,z);
你会发现上面这种形式和我们以前使用的Console.WriteLine有相似之处,实际上两种使用相同的格式化规则,都可以格式化字符串,区别是前者是返回格式化的字符串,而后者是直接输出格式化的字符串。两者都使用系统提供的格式规则,规则如下:
{index[,alignment][:formatString]}
其中index是从零开始的整数,指示对象列表中要格式化的元素;alignment为可选整数,指示包含格式化值的区域的最小宽度,如果格式化值的长度小于alignment,则用空格填充该区域,如果alignment为负,则格式化的值将在该区域中左对齐;如果alignment为正,则格式化的值将右对齐。如果没有指定alignment,则该区域的长度为格式化值的长度,如果指定alignment,则需使用逗号和index分隔。formatString是可选的格式说明符字符串,常用的有日期格式符和数字格式符两种,我们前面使用过的“{0,2:F}”就属于数字格式符,它指定浮点型保留两位小数。String.Format使用示例如下:
using System;
class Sample
{
static DateTime thisDate=DateTime.Now;
public static void Main()
{
string s=String.Empty;
Console.WriteLine("标准数字格式化:");
s=String.Format(
"(C)Currency: {0:C}\n"+/*货币*/
"(D)Decimal: {0:D}\n"+ /*十进制数*/
"(E)Scientific: {1:E}\n"+ /*科学计数法*/
"(F)Fixed point: {1:F}\n"+ /*固定点*/
"(G)General: {1:G}\n"+ /*常规*/
"(default): {0} \n"+ /*默认*/
"(N) Number: {0:N}\n"+ /*数字*/
"(P) Percent: {1:P}\n" +/*百分比*/
"(X) Hexadecimal: {0:X}\n", /*十六进制*/
-1239877,-123.457f);
Console.WriteLine(s);
Console.WriteLine("标准日期格式化:");
s=String.Format(
"(d) Short date : {0:d}\n"+ /*短日期模式*/
"(D)Long date: {0:D}\n" + /*长日期模式*/
"(t)Short time: {0:t}\n" + /*短时间模式*/
"(T) Long time: {0:T}\n" +/*长时间模式*/
"(f)Full date/short time: {0:f}\n" +/*完整日期短时间*/
"(F)Full date/long time: {0:F}\n" +/*完整日期长时间*/
"(g)General date/short time:{0:g}\n"+/*常规日期短时间*/
"(G)General date/long time: {0:G}\n"+ /*常规日期长时间*/
"(default): {0} \n" + /*默认模式*/
"(M) Month {0:M}\n" + /*月日模式*/
"(R) RFC1123: {0:R}\n"+/*RFC1123模式*/
"(U)Universal sortable: {0:U}\n" +/*通用的可排序日期模式*/
"(Y)Year: {0:Y}\n", /*年月模式*/
thisDate);
Console.WriteLine(s);
}
}
输出结果:
(C)Currency: ¥-1,239,877.00
(D) Decimal: -1239877
(E) Scientific: -1.234570E+002
(F) Fixed point: -123.46
(G) General: -123.457
(default): -1239877
(N) Number: -1,239,877.00
(P) Percent: -12,345.70%
(X) Hexadecimal: FFED14BB
标准日期格式化:
(d) Short date: 2007-11-21
(D)Long date: 2007年11月21日
(t)Short time: 21:14
(T)Long time: 21:14:22
(f)Full date/short time: 2007年11月21日 21:14
(F)Full date/long time: 2007年11月21日 21:14:22
(g)General date/short time: 2007-11-21 21:14
(G) General date/long time: 2007-11-21 21:14:22
(default): 2007-11-21 21:14:22
(M) Month: 11月21日
(R) RFC1123: Wed,21 Mov 2007 21:14:22 GMT
(U)Universal sortable: 2007年11月21日 13:14:22
(Y) Year: 2007年11月
我们说一个普通的字符串对象是不可修改的,在很多情况下我们都需要一个能够修改的字符串对象。此时你就需要使用另外一种可变字符串,就是StringBuilder字符串。普通字符串修改方法往往返回一个新的实例,而不是对其自身进行修改,而StringBuilder字符串在创建以后,可以方便的通过追加、移除、替换或插入等操作直接对其自身进行修改。如果你在程序中已经有了普通字符串对象,你可以直接使用其创建StringBuilder对象