標籤:des style http java color 使用
1、作為參數
| |
名稱 |
說明 |
| |
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};
string.format("{0}{1}{2}",m);
一個參數
private const string _extraClause = " AND C_INTERNSHIPORG_INTERNSHIPID = {0}";
//將MyCrypt.Decrypt(Request["id"])作為_extraClause 的參數
if (Request["id"] != null && Request["id"] != string.Empty)
{
mExtraMessage = string.Format(_extraClause, MyCrypt.Decrypt(Request["id"]));
}
2、格式化數值結果表
| 字元 |
說明 |
示範範例 |
輸出 |
| 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個參數。
以下是一個簡單的範例:
int = 123;
str = "字串"
--以下的%s相應參數str, %i相應參數int
str = string.format("這是字串:‘
%s‘ 這是數字值
%i",
str,
int);
win.messageBox(str);
--%05i表示格式化為至少五位的數字,不足在前面補0
str = string.format("
%05i",
int);
win.messageBox(str);
格式化運算式:%[零個或多個標誌][最小欄位寬度][精度][改動符]格式碼
注意:[]方括弧表示可選參數
1、格式碼
代碼 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進行格式化。
代碼 %
參數 (無)
含義 取消%轉義列印一個%字元,即用%%表示本來的%。
2、 標誌
標誌 -
含義 值在欄位中做對齊,預設情況下是靠右對齊。
標誌 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並不從小數中去除
3、 欄位寬度
欄位寬度是一個十進位整數,用於指定將出如今結果中的最小字元數。假設值的字元數少於欄位寬度,就對它進行填充以添加?長度。
4、 精度
精度以一個句點開頭,後面跟一個可選的十進位數。假設未給出整數,精度的預設值為零。
對於d,i,u,o,x和X類型的轉換,精度欄位指定將出如今結果中的最小的數字個數並覆蓋零標誌。假設轉換後的值的位元小於寬度,就在它的前面插入零。假設值為零且精度也為零,則轉換結果就不會產生數字。
對於e,E和f類型的轉換,精度決定將出如今小數點之後的數字位元。
對於g和G類型的轉換,它指定將出如今結果中的最大有效位元。
當使用s類型的轉換時,精度指定將被轉換的最多的字元數。
假設用於表示欄位寬度和/或精度的十進位整數由一個星號取代,那麼printf的下一個參數(必須是個整數)就提供寬度和(或)精度。因此,
這些值能夠通過計算獲得而不必預先指定。
5、示範範例
格式代碼 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)
四、格式化時間
類比精靈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 - 時區名或縮寫
%% - 文字上的 `%‘ 字元