在 Lua 中 format 函数用于格式化字符串,返回一个类似 printf 的格式化字符串。函数的第一个参数是格式, 之后是对应格式中每个代号的各种数据。
由于格式字符串的存在, 使得产生的长字符串可读性大大提高了。这个函数的格式很像 C 语言 中的 printf()。
string.format(...)
参数 | 描述 |
---|---|
… | 可变参数 |
返回一个类似 printf 的格式化字符串。
格式字符串可能包含以下的转义码:
格式 | 描述 |
---|---|
%c | 接受一个数字, 并将其转化为 ASCII 码表中对应的字符 |
%d, %i | 接受一个数字并将其转化为有符号的整数格式 |
%o | 接受一个数字并将其转化为八进制数格式 |
%u | 接受一个数字并将其转化为无符号整数格式 |
%x | 接受一个数字并将其转化为十六进制数格式, 使用小写字母 |
%X | 接受一个数字并将其转化为十六进制数格式, 使用大写字母 |
%e | 接受一个数字并将其转化为科学记数法格式, 使用小写字母 e |
%E | 接受一个数字并将其转化为科学记数法格式, 使用大写字母 E |
%f | 接受一个数字并将其转化为浮点数格式 |
%g(%G) | 接受一个数字并将其转化为 %e(%E, 对应 %G)及 %f 中较短的一种格式 |
%q | 接受一个字符串并将其转化为可安全被 Lua 编译器读入的格式 |
%s | 接受一个字符串并按照给定的参数格式化该字符串 |
为进一步细化格式, 可以在 % 号后添加参数,参数将以如下的顺序读入:
使用 format() 函数,实现字符串格式化
#!/usr/bin/lua
print("haicoder(www.haicoder.net)\n")
print(string.format("Study %s from %s", "Lua", "HaiCoder"))
year = 2023
month = 10
day = 1
print(string.format("Today is %04d-%02d-%02d", year, month, day))
程序运行后,控制台输出如下:
我们使用了 string.format 实现了字符串格式化。
使用 format() 函数,实现数字格式化
#!/usr/bin/lua
print("haicoder(www.haicoder.net)\n")
print(string.format("%c", 83))
print(string.format("%+d", 17.0))
print(string.format("%05d", 17))
程序运行后,控制台输出如下:
我们使用了 string.format 实现了数字的格式化。
在 Lua 中 format 函数用于格式化字符串,返回一个类似 printf 的格式化字符串。函数的第一个参数是格式, 之后是对应格式中每个代号的各种数据。
由于格式字符串的存在, 使得产生的长字符串可读性大大提高了。这个函数的格式很像 C 语言中的 printf()。