无名 发表于 2022-5-8 19:14:56

GGlua第8课string.format()转化

你好,我叫兔子!!
今天大体讲一下转换的函数
比如说16进制转换
就会用到string.format()

先看下面(网络搜集)

常用转义符:
%c-接受一个数字,并将其转化为ASCII码表中对应
的字符
%d,%i-接受一个数字并将其转化为有符号的整数格

%0-接受一个数字并将其转化为八进制数格式
%u-接受一个数字并将其转化为无符号整数格式
%x-接受一个数字并将其转化为十六进制数格式,使用小写字母
%X-接受一个数字并将其转化为十六进制数格式,使用大写字母
%e-接受一个数字并将其转化为科学记数法格式,使用小写字母e
%E-接受一个数字并将其转化为科学记数法格式,使用大写字母E
%f - 接受一个数字并将其转化为浮点数格式
%g(%G)-接受一个数字并将其转化为%e(%E,对应%G)及%f中较短的一种格式
%q-接受一个字符串并将其转化为可安全被Lua编译器读入的格式
%s-接受一个字符串并按照给定的参数格式化该字符串

实用扩展:
对于“string.format”的使用,转义符的使用也是有部分技巧。
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

举个例子,比如说16进制转换
a=54321   (随便赋值)
print(string.format("%X",a))

--以下就代表图片了,我是真的动手去干了,但是我不愿意去截图,你自己去试一试,不好吗?
--大大不要锁帖子了,本来就没有多少粉,我看着评论最起码能知道我还有那么多人看过我的帖,并且为我助力

--输出结果是
--D431
--这就是一个十进制转化成16进制
%X就是转化符号(转义符),其他都看上文的
--如果觉得不太难的话,下一课我就准备讲内存分配页
页: [1]
查看完整版本: GGlua第8课string.format()转化