string.format (formatstring, ···)
功能:將字串格式化後再回傳。
說明:這個相對其它字串函數,使用方式比較複雜,建議是一邊改一邊輸出檢查結果。它有
兩個參數:
formatstring:顯示的格式。
string:字串內容。
設定格式的轉義碼也是用%,要注意大小寫,內容有:
┌───┬─────────────────────────────────┐
│%c │接受一個數字,並將其轉化為ASCII碼表中對應的字元 │
│%d,%i │接受一個數字並將其轉化為有符號的整數格式,如果數字是為16進位的格 │
│ │式(如0xf),會被轉成10進位的數字,但起始值是以0起算的。 │
│%o │接受一個數字並將其轉化為八進制數格式 │
│%u │接受一個數字並將其轉化為無符號整數格式 │
│%x │接受一個數字並將其轉化為十六進制數格式, 使用小寫字母 │
│%X │接受一個數字並將其轉化為十六進制數格式, 使用大寫字母 │
│%e │接受一個數字並將其轉化為科學記數法格式, 使用小寫字母e │
│%E │接受一個數字並將其轉化為科學記數法格式, 使用大寫字母E │
│%f │接受一個數字並將其轉化為浮點數格式 │
│%g(%G)│接受一個數字並將其轉化為%e(%E, 對應%G)及%f中較短的一種格式 │
│%q │接受一個字符串並將其轉化為可安全被Lua編譯器讀入的格式 │
│%s │接受一個字符串並按照給定的參數格式化該字符串 │
└───┴─────────────────────────────────┘
在%和匹配字元中間,依規則增加格式化的條件:
%[+-(一般是靠左或靠右)][補位字元,幾乎只能用0][總寬度].[取幾個位元][字符]
如:%+06.3s << 靠右,總寬度6位,目標字串只取3個字元長度。在%和s外面則被視
為普通字串。
範例:string.format("%%c: %c", 83) 輸出S
string.format("%+d", 17.0) 輸出+17
string.format("%05d", 17) 輸出00017
string.format("%o", 17) 輸出21
string.format("%u", 3.14) 輸出3
string.format("%x", 13) 輸出d
string.format("%X", 13) 輸出D
string.format("%e", 1000) 輸出1.000000e+03
string.format("%E", 1000) 輸出1.000000E+03
string.format("%6.3f", 13) 輸出13.000
string.format("%q", "One\nTwo") 輸出"One
Two"
string.format("%s", "monkey") 輸出monkey
string.format("%10s", "monkey") 輸出 monkey
string.format("%5.3s", "monkey") 輸出 mon