String.Format方法是我们在.Net应用开发时经常使用到的,它的灵活使用有时能够达到事半功倍的效果,下面我们就借用MSDN上的一个示例来向大家展示String.Format的各种用法。
该示例展示了Numeric、DateTime和Enumeration标准格式的使用,另外,我们也可以根据需要自定义我们需要的格式。
using System;
class Sample
{
enum Color {Yellow = 1, Blue, Green};
static DateTime thisDate = DateTime.Now;
public static void Main()
{
// Store the output of the String.Format method in a string.
string s = "";
// Format a negative integer or floating-point number in various ways.
Console.WriteLine("Standard Numeric Format Specifiers");
s = String.Format(
"(C) Currency: . . . . . . . . {0:C} " +
"(D) Decimal:. . . . . . . . . {0:D} " +
"(E) Scientific: . . . . . . . {1:E} " +
"(F) Fixed point:. . . . . . . {1:F} " +
"(G) General:. . . . . . . . . {0:G} " +
" (default):. . . . . . . . {0} (default = 'G') " +
"(N) Number: . . . . . . . . . {0:N} " +
"(P) Percent:. . . . . . . . . {1:P} " +
"(R) Round-trip: . . . . . . . {1:R} " +
"(X) Hexadecimal:. . . . . . . {0:X} ",
-123, -123.45f);
Console.WriteLine(s);
// Format the current date in various ways.
Console.WriteLine("Standard DateTime Format Specifiers");
s = String.Format(
"(d) Short date: . . . . . . . {0:d} " +
"(D) Long date:. . . . . . . . {0:D} " +
"(t) Short time: . . . . . . . {0:t} " +
"(T) Long time:. . . . . . . . {0:T} " +
"(f) Full date/short time: . . {0:f} " +
"(F) Full date/long time:. . . {0:F} " +
"(g) General date/short time:. {0:g} " +
"(G) General date/long time: . {0:G} " +
" (default):. . . . . . . . {0} (default = 'G') " +
"(M) Month:. . . . . . . . . . {0:M} " +
"(R) RFC1123:. . . . . . . . . {0:R} " +
"(s) Sortable: . . . . . . . . {0:s} " +
"(u) Universal sortable: . . . {0:u} (invariant) " +
"(U) Universal sortable: . . . {0:U} " +
"(Y) Year: . . . . . . . . . . {0:Y} ",
thisDate);
Console.WriteLine(s);
// Format a Color enumeration value in various ways.
Console.WriteLine("Standard Enumeration Format Specifiers");
s = String.Format(
"(G) General:. . . . . . . . . {0:G} " +
" (default):. . . . . . . . {0} (default = 'G') " +
"(F) Flags:. . . . . . . . . . {0:F} (flags or integer) " +
"(D) Decimal number: . . . . . {0:D} " +
"(X) Hexadecimal:. . . . . . . {0:X} ",
Color.Green);
Console.WriteLine(s);
}
}
以上代码的输出结果如下:
Standard Numeric Format Specifiers
(C) Currency: . . . . . . . . ¥-123.00
(D) Decimal:. . . . . . . . . -123
(E) Scientific: . . . . . . . -1.234500E+002
(F) Fixed point:. . . . . . . -123.45
(G) General:. . . . . . . . . -123
(default):. . . . . . . . -123 (default = 'G')
(N) Number: . . . . . . . . . -123.00
(P) Percent:. . . . . . . . . -12,345.00%
(R) Round-trip: . . . . . . . -123.45
(X) Hexadecimal:. . . . . . . FFFFFF85
Standard DateTime Format Specifiers
(d) Short date: . . . . . . . 2007-1-29
(D) Long date:. . . . . . . . 2007年1月29日
(t) Short time: . . . . . . . 13:57
(T) Long time:. . . . . . . . 13:57:42
(f) Full date/short time: . . 2007年1月29日 13:57
(F) Full date/long time:. . . 2007年1月29日 13:57:42
(g) General date/short time:. 2007-1-29 13:57
(G) General date/long time: . 2007-1-29 13:57:42
(default):. . . . . . . . 2007-1-29 13:57:42 (default = 'G')
(M) Month:. . . . . . . . . . 1月29日
(R) RFC1123:. . . . . . . . . Mon, 29 Jan 2007 13:57:42 GMT
(s) Sortable: . . . . . . . . 2007-01-29T13:57:42
(u) Universal sortable: . . . 2007-01-29 13:57:42Z (invariant)
(U) Universal sortable: . . . 2007年1月29日 5:57:42
(Y) Year: . . . . . . . . . . 2007年1月
Standard Enumeration Format Specifiers
(G) General:. . . . . . . . . Green
(default):. . . . . . . . Green (default = 'G')
(F) Flags:. . . . . . . . . . Green (flags or integer)
(D) Decimal number: . . . . . 3
(X) Hexadecimal:. . . . . . . 00000003