http://blog.csdn.net/yohop/article/details/2534907編程
一、做爲參數數組
名稱 | 說明 | |
---|---|---|
Format(String, Object) | 將指定的 String 中的格式項替換爲指定的 Object 實例的值的文本等效項。 | |
Format(String, array<>[]()[]) | 將指定 String 中的格式項替換爲指定數組中相應 Object 實例的值的文本等效項。 | |
Format(IFormatProvider, String, array<>[]()[]) | 將指定 String 中的格式項替換爲指定數組中相應 Object 實例的值的文本等效項。指定的參數提供區域性特定的格式設置信息。 | |
Format(String, Object, Object) | 將指定的 String 中的格式項替換爲兩個指定的 Object 實例的值的文本等效項。 | |
Format(String, Object, Object, Object) | 將指定的 String 中的格式項替換爲三個指定的 Object 實例的值的文本等效項。 |
多個參數編程語言
int m[]=new int{a,b,c,d};ide
string.format("{0}{1}{2}",m);函數
一個參數spa
private const string _extraClause = " AND C_INTERNSHIPORG_INTERNSHIPID = {0}";.net
//將MyCrypt.Decrypt(Request["id"])做爲_extraClause 的參數
if (Request["id"] != null && Request["id"] != string.Empty)
{
mExtraMessage = string.Format(_extraClause, MyCrypt.Decrypt(Request["id"]));
}3d
二、格式化數值結果表orm
字符blog |
說明 |
示例 |
輸出 |
C | 貨幣 | string.Format("{0:C3}", 2) | $2.000 |
D | 十進制 | string.Format("{0:D3}", 2) | 002 |
E | 科學計數法 | 1.20E+001 | 1.20E+001 |
G | 常規 | string.Format("{0:G}", 2) | 2 |
N | 用分號隔開的數字 | string.Format("{0:N}", 250000) | 250,000.00 |
X | 十六進制 | string.Format("{0:X000}", 12) | C |
string.Format("{0:000.000}", 12.2) | 012.200 |
string.format用來格式化字符串(按指定的規則鏈接字符串或輸出其餘變量並返回新的字符串) 。
string.format(fm,...);
第一個參數用fm表示輸出的格式,每一個%符號後面是一個格式化表達式,每一個格式化表達式按順序對應後面的參數。
因此用了N個格式化表達式,就必須在後面添加N個參數。
下面是一個簡單的例子:
格式化表達式:%[零個或多個標誌][最小字段寬度][精度][修改符]格式碼
注意:[]方括號表示可選參數
一、格式碼
代碼 c
參數 數字值(number)
含義 參數被裁剪爲8位字節碼並做爲字符進行打印。
代碼 i,d
參數 數字值(number)
含義 參數做爲一個十進制整數打印。若是給出了精度並且值的位數小於精度位數,前面就用0填充。
代碼 u,o,x,X
參數 數字值(number)
含義 參數做爲一個無符號數字值打印,u使用十進制,o使用八進制,x或X使用十六進制,二者的區別是x約定使用abcdef,而X約定使用ABCDEF。
代碼 e,E
參數 數字值(number)
含義 參數根據指數形式打印。例如,6.023000e23是使用代碼e,6.023000E23是使用代碼E。小數點後面的位數由精度字段決定,缺省值是6。
代碼 f
參數 數字值(number)
含義 參數按照的常規浮點格式打印。精度字段決定小數點後面的位數,缺省值是6。
代碼 g,G
參數 數字值(number)
含義 參數以%f或%e(如G則%E)的格式打印,取決於它的值。若是指數大於等於-4但小於精度字段就使用%f格式,不然使用指數格式。
代碼 s
參數 字符串值(string)
含義 打印一個字符串。
代碼 q
參數 (無)
含義 打印一個字符串,並將字符串置於一對引號中,若是字符串中包含引號換行等自動添加轉義符。若是要讀取一個字符串傳爲腳本代碼。爲避免用戶惡意注入引號等特殊字符,可使用%q進行格式化。
代碼 %
參數 (無)
含義 取消%轉義打印一個%字符,即用%%表示原本的%。
二、 標誌
標誌 -
含義 值在字段中作對齊,缺省狀況下是右對齊。
標誌 0
含義 當數值爲右對齊時,缺省狀況下是使用空格填充值左邊未使用的列。這個標誌表示用零填充,它可用於d,i,u,o,x,X,e,E,f,g和G代碼。
使用d,i,u,o,x和X代碼時,若是給出了精度字段,零標誌就被忽略。若是格式代碼中出現了負號,零標誌也沒有效果。
標誌 +
含義 當用於一個格式化某個有符號值代碼時,若是值非負,正號標誌就會給它加上一個正號。若是該值爲負,就像往常同樣顯示一個負號。在
缺省狀況下,正號並不會顯示。
標誌 空格
含義 只用於轉換有符號值的代碼。當值非負時,這個標誌把一個空格添加到它開始的位置。注意這個標誌和正號標誌是相互排斥的,若是兩個
同時給出,空格標誌便被忽略。
標誌 #
含義 選擇某些代碼的另外一種轉換形式:
用於... #標誌...
o 保證產生的值以一個零開頭
x,X 在非零值前面加0x前綴(%X則爲0X)
e,E,f 確保結果始終包含一個小數點,即便它後面沒有數字
g,G 和上面的e,E和f代碼相同。另外,綴尾的0並不從小數中去除
三、 字段寬度
字段寬度是一個十進制整數,用於指定將出如今結果中的最小字符數。若是值的字符數少於字段寬度,就對它進行填充以增長長度。
四、 精度
精度以一個句點開頭,後面跟一個可選的十進制數。若是未給出整數,精度的缺省值爲零。
對於d,i,u,o,x和X類型的轉換,精度字段指定將出如今結果中的最小的數字個數並覆蓋零標誌。若是轉換後的值的位數小於寬度,就在它的前面插入零。若是值爲零且精度也爲零,則轉換結果就不會產生數字。
對於e,E和f類型的轉換,精度決定將出如今小數點以後的數字位數。
對於g和G類型的轉換,它指定將出如今結果中的最大有效位數。
當使用s類型的轉換時,精度指定將被轉換的最多的字符數。
若是用於表示字段寬度和/或精度的十進制整數由一個星號代替,那麼printf的下一個參數(必須是個整數)就提供寬度和(或)精度。所以,
這些值能夠經過計算得到而沒必要預先指定。
五、示例
格式代碼 A ABC ABCDEFGH
%s A ABC ABCDEFGH
%5s ####A ##ABC ABCDEFGH
%.5s A ABC ABCDE
%5.5s ####A ##ABC ABCDE
%-5s A#### ABC## ABCDEFGH
格式代碼 1 -12 12345 123456789
%d 1 -12 12345 123456789
%6d #####1 ###-12 #12345 123456789
%.4d 0001 -0012 12345 123456789
%6.4d ##0001 #-0012 #12345 123456789
%-4d 1#### -12# 12345 123456789
%04d 0001 -012 12345 123456789
%+d +1 -12 +12345 +123456789
格式代碼 1 .01 .00012345 12345.6789
%f 1.000000 0.010000 0.000123 12345.678900
%10.2d ######1.00 #####0.01 ######0.00 ##12345.67
%e 1.000000e+00 1.000000e-02 1.234500e-04 1.234568e+04
%.4e 1.0000e+00 1.0000e-02 1.2345e-04 1.2346e+04
%g 1 0.01 0.00012345 12345.7
格式代碼 6.023e23
%f 60229999999999975882752.000000
%10.2e 60229999999999975882752.00
%e 6.023000e+23
%.4e 6.0230e+23
%g 6.023e+23
用上面的格式化函數能夠輕鬆實現數字的進制轉換
--數字轉換爲二進制字符串
str = string.format("%b",23 );
--二進制字符串轉換爲數字
n = tonumber(str,2)
--數字轉換爲八進制字符串
str = string.format("%o",23 );
--八進制字符串轉換爲數字
n = tonumber(str,8)
--數字轉換爲十六進制字符串
str = string.format("%x",23 );
--十六進制字符串轉換爲數字
n = tonumber(str,16)
4、格式化時間
模擬精靈v7.10 格式化時間的函數有 string.time;string.ftime;os.data;os.time 等函數。
os.time 是從table生成數字時間值 string.time是從字符串生成數字時間值。
os.data 與string.ftime功能相同從時間值反過來生成字符串或時間。
這裏咱們介紹string.time函數、string.ftime函數,下面是使用示例:
--從字符串建立時間值
t = string.time("2006/6/6 0:0:0","%Y/%m/%d %H:%M:%S")
--從時間值建立字符串
str = string.ftime("%Y/%m/%d %H:%M:%S",t )
格式化語法(在不少編程語言中都適用的語法)
%a - 當前區域星期幾的簡寫%A - 當前區域星期幾的全稱%b - 當前區域月份的簡寫%B - 當前區域月份的全稱%c - 當前區域首選的日期時間表達%C - 世紀值(年份除以 100 後取整,範圍從 00 到 99)%d - 月份中的第幾天,十進制數字(範圍從 01 到 31)%D - 和 %m/%d/%y 同樣%e - 月份中的第幾天,十進制數字,一位的數字前會加上一個空格(範圍從 ' 1' 到 '31')%g - 和 %G 同樣,可是沒有世紀%G - 4 位數的年份,符合 ISO 星期數(參見 %V)。和 %V 的格式和值同樣,只除了若是 ISO 星期數屬於前一年或者後一年,則使用那一年。%h - 和 %b 同樣%H - 24 小時制的十進制小時數(範圍從 00 到 23)%I - 12 小時制的十進制小時數(範圍從 00 到 12)%j - 年份中的第幾天,十進制數(範圍從 001 到 366)%m - 十進制月份(範圍從 01 到 12)%M - 十進制分鐘數%n - 換行符%p - 根據給定的時間值爲 `am' 或 `pm',或者當前區域設置中的相應字符串%r - 用 a.m. 和 p.m. 符號的時間%R - 24 小時符號的時間%S - 十進制秒數%t - 製表符%T - 當前時間,和 %H:%M:%S 同樣%u - 星期幾的十進制數表達 [1,7],1 表示星期一%U - 本年的第幾周,從第一週的第一個星期天做爲第一天開始%V - 本年第幾周的 ISO 8601:1988 格式,範圍從 01 到 53,第 1 周是本年第一個至少還有 4 天的星期,星期一做爲每週的第一天。(用 %G 或者 %g 做爲指定時間戳相應週數的年份組成。)%W - 本年的第幾週數,從第一週的第一個星期一做爲第一天開始%w - 星期中的第幾天,星期天爲 0%x - 當前區域首選的時間表示法,不包括時間%X - 當前區域首選的時間表示法,不包括日期%y - 沒有世紀數的十進制年份(範圍從 00 到 99)%Y - 包括世紀數的十進制年份%Z - 時區名或縮寫%% - 文字上的 `%' 字符