Lua Memo

string.format .. 文字列の書式化

string.format (formatstring, e1, e2, ...)

書式文字列は標準C関数のprintfと同じ。

未サポート:*、l、L、n、p、h

追加:q

q オプションは、Luaインタプリタで安全に読み戻せる適切な形式の文字列に書式化する。この時、文字列はダブルクォートの間に書かれ、文字列中のダブルクォート、改行、埋め込まれたゼロ、バックスラッシュは正しくエスケープされる。

例えば、

 string.format('%q', 'a string with "quotes" and \n new line')

は次のような文字列を生成する。

"a string with \"quotes\" and \
new line"

c、d、E、e、f, g、G、i、o、u, X、x はすべて数値の引数を期待し、 q と s は文字列を期待する。

sample

C言語の printf と同じ。

print(string.format("name=%s", "taro"))-->name=taro
print(string.format("value=0x%02X", 255))-->value=0xFF

文字列であれば、":"を使って以下のように書くこともできる。

fmt = "key=%s,value=%s"
print(fmt:format("kagi","800")) --> key=kagi,value=800

link