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/
本文详细介绍了C#中String.Format方法的使用技巧,包括字符串、数值、日期及枚举类型的格式化示例。通过具体实例展示了如何精确控制输出格式。
394

被折叠的 条评论
为什么被折叠?



