String.Format的使用方法如下:
string errorString = String.Format(”Error {0} occurred.”, nError);
其中在花括號中的內容格式如下: {index[,alignment][:formatString]}.
參數說明:
index表示的參數的序列值
alignment表示對齊方式,省略或為正數,則向右靠齊.如果為負,則向左靠齊.不足的部分用空格填充.
formatString表示格式化方式
1.Strings字符串格式化
示例 輸出
String.Format(”->{1,10}<-”, “Hello”); -> Hello<-
String.Format(”->{1,-10}<-”, “Hello”); ->Hello <-
2.Numbers數值格式化
--1.基本的格式化字符
字符 | 類型 | 格式 | Output | Output |
c | Currency | {0:c} | $1.42 | -$12,400 |
d | Decimal (Whole number) | {0:d} | System. FormatException | -12400 |
e | Scientific | {0:e} | 1.420000e+000 | -1.240000e+004 |
f | Fixed point | {0:f} | 1.42 | -12400.00 |
g | General | {0:g} | 1.42 | -12400 |
n | Number with commas for thousands | {0:n} | 1.42 | -12,400 |
r | Round trippable | {0:r} | 1.42 | System. FormatException |
x | Hexadecimal | {0:x4} | System. FormatException | cf90 |
示例:
string.Format("{0:C3}", 2) //輸出 $2.000
string.Format("{0:D3}", 2) //輸出 002
string.Format("{0:G}", 2) //輸出 2
string.Format("{0:N}", 250000) //輸出 250,000.00
string.Format("{0:X000}", 12) //輸出 C
--2.自定義數值格式
字符 | 類型 | 示例 | Output (Passed Double 1500.42) | Note |
0 | Zero placeholder | {0:00.0000} | 1500.4200 | Pads with zeroes. |
# | Digit placeholder | {0:(#).##} | (1500).42 | |
. | Decimal point | {0:0.0} | 1500.4 | |
, | Thousand separator | {0:0,0} | 1,500 | Must be between two zeroes. |
,. | Number scaling | {0:0,.} | 2 | Comma adjacent to Period scales by 1000. |
% | Percent | {0:0%} | 150042% | Multiplies by 100, adds % sign. |
e | Exponent placeholder | {0:00e+0} | 15e+2 | Many exponent formats available. |
; | Group separator | 參見示例 |
示例:
String.Format("{0:0000}",157) //輸出 0157
String.Format("{0:0000.0000}",157.42) //輸出 0157.4200
String.Format("{0:(###) ###-####}", 8005551212) //輸出 (800) 555-1212
String.Format("{0:0,0}", 38560) //輸出 38,560
String.Format("{0:0%}", 0.283333) //輸出28%
String.Format("{0:0.00%}",0.283333); // 輸出 28.33%
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 0) //輸出 Zero
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 1243.50) //輸出 $1,243.50
3.Dates日期格式化
--1.基本的日期格式化字符
字符 | 類型 | 示例 (Passed System.DateTime.Now) |
d | Short date | 10/12/2002 |
D | Long date | December 10, 2002 |
t | Short time | 10:11 PM |
T | Long time | 10:11:29 PM |
f | Full date & time | December 10, 2002 10:11 PM |
F | Full date & time (long) | December 10, 2002 10:11:29 PM |
g | Default date & time | 10/12/2002 10:11 PM |
G | Default date & time (long) | 10/12/2002 10:11:29 PM |
M | Month day pattern | December 10 |
r | RFC1123 date string | Tue, 10 Dec 2002 22:11:29 GMT |
s | Sortable date string | 2002-12-10T22:11:29 |
u | Universal sortable, local time | 2002-12-10 22:13:50Z |
U | Universal sortable, GMT | December 11, 2002 3:13:50 AM |
Y | Year month pattern | December, 2002 |
--2.自定義日期格式
字符 | 類型 | 示例 | 輸出 |
dd | Day | {0:dd} | 10 |
ddd | Day name | {0:ddd} | Tue |
dddd | Full day name | {0:dddd} | Tuesday |
f, ff, … | Second fractions | {0:fff} | 932 |
gg, … | Era | {0:gg} | A.D. |
hh | 2 digit hour | {0:hh} | 10 |
HH | 2 digit hour, 24hr format | {0:HH} | 22 |
mm | Minute 00-59 | {0:mm} | 38 |
MM | Month 01-12 | {0:MM} | 12 |
MMM | Month abbreviation | {0:MMM} | Dec |
MMMM | Full month name | {0:MMMM} | December |
ss | Seconds 00-59 | {0:ss} | 46 |
tt | AM or PM | {0:tt} | PM |
yy | Year, 2 digits | {0:yy} | 02 |
yyyy | Year | {0:yyyy} | 2002 |
zz | Timezone offset, 2 digits | {0:zz} | -05 |
zzz | Full timezone offset | {0:zzz} | -05:00 |
: | Separator | {0:hh:mm:ss} | 10:43:20 |
/ | Separator | {0:dd/MM/yyyy} | 10/12/2002 |
4.Enumerations枚舉格式化
字符 | 類型 |
g | Default (Flag names if available, otherwise decimal) |
f | Flags always |
d | Integer always |
x | Eight digit hex. |
本文參考資料:http://blog.stevex.net/index.php/string-formatting-in-csharp/