Lua之string.format占位符的使用
常用占位符
占位符 | 对应解释 |
%c | 接受一个数字, 并将其转化为ASCII码表中对应的字符 |
%d, %i | 接受一个数字并将其转化为有符号的整数格式 |
%o | 接受一个数字并将其转化为八进制数格式 |
%u | 接受一个数字并将其转化为无符号整数格式 |
%x | 接受一个数字并将其转化为十六进制数格式, 使用小写字母 |
%X | 接受一个数字并将其转化为十六进制数格式, 使用大写字母 |
%e | 接受一个数字并将其转化为科学记数法格式, 使用小写字母e |
%E | 接受一个数字并将其转化为科学记数法格式, 使用大写字母E |
%f | 接受一个数字并将其转化为浮点数格式 |
%g(%G) | 接受一个数字并将其转化为%e(%E, 对应%G)及%f中较短的一种格式 |
%q | 接受一个字符串并将其转化为可安全被Lua编译器读入的格式 |
%s | 接受一个字符串并按照给定的参数格式化该字符串 |
举例说明
1)string.format中怎么匹配带%的的字符串和占位符的使用
string.format("%d%%", 100) 输出: 100%
string.format(""%s"", “Hello World”) 输出: “Hello World”
2)常用的格式控制符
可以在%号后添加参数. 参数将以如下的顺序读入:
(1) 符号: 一个+号表示其后的数字占位符将让正数显示正号. 负数不变.
(2) 占位符: 一个0, 在后面指定了字串宽度时占位用. 默认占位符是空格.
(3) 对齐标识: 在指定了字串宽度时, 默认为右对齐, 增加-号可以改为左对齐.(用于一些自动空格地方)
(4) 宽度数值 .小数位数/字串裁切: 在宽度数值后增加的小数部分n, 若后接f则设定该浮点数的小数只保留n位, 若后接s则设定该字符串只显示前n位.
string.format("%05d", 2015) 输出: 02015
string.format("%+04d", -2015) 输出: -2015
string.format("%+04d", 2015) 输出: +2015
string.format("%.5f", math.pi) 输出: 3.14159
string.format("%.8f", 0.123456789) 输出: 0.12345679 (这里可以看到第八位变成了9而不是8,其实是做了一个四舍五入操作)
string.format("%.4s", “canglang”) 输出: cang
string.format("%8.4s", “canglang”) 输出: cang
3)位数不够前面补0
比如1,2,3,10,11,在显示时都显示成两位数
print(string.format("%02d", 1)) ---01 print(string.format("%02d", 11)) ---11 print(string.format("%-3d",22)) --左对齐 22-