字符串格式化
Lua 提供了 **string.format()** 函数来生成具有特定格式的字符串, 函数的第一个参数是格式 , 之后是对应格式中每个代号的各种数据。
由于格式字符串的存在, 使得产生的长字符串可读性大大提高了。这个函数的格式很像 C 语言中的 printf()。
以下实例演示了如何对字符串进行格式化操作:
格式字符串可能包含以下的转义码:
%c | 接受一个数字, 并将其转化为ASCII码表中对应的字符 |
---|---|
%d | 接受一个数字并将其转化为有符号的整数格式 |
%o | 接受一个数字并将其转化为八进制数格式 |
%u | 接受一个数字并将其转化为无符号整数格式 |
%x | 接受一个数字并将其转化为十六进制数格式, 使用小写字母 |
%X | 接受一个数字并将其转化为十六进制数格式, 使用大写字母 |
%e | 接受一个数字并将其转化为科学记数法格式, 使用小写字母e |
%E | 接受一个数字并将其转化为科学记数法格式, 使用大写字母E |
%f | 接受一个数字并将其转化为浮点数格式 |
%g(%G) | 接受一个数字并将其转化为%e(%E, 对应%G)及%f中较短的一种格式 |
%q | 接受一个字符串并将其转化为可安全被Lua编译器读入的格式 |
%s | 接受一个字符串并按照给定的参数格式化该字符串 |
+ | 表示其后的数字转义符将让正数显示正号. 默认情况下只有负数显示符号. |
0 | 在后面指定了字串宽度时占位用. 不填时的默认占位符是空格. |
无法格式化: bad argument #2 to ‘format’ (number expected, got string)
string1 = "Lua"
string2 = "Tutorial"
number1 = 10
number2 = 20
-- 基本字符串格式化
print(string.format("基本格式化 %s %s",string1,string2))
-- 日期格式化
date = 2; month = 1; year = 2014
print(string.format("日期格式化 %02d/%02d/%03d", date, month, year))
-- 十进制格式化
print(string.format("%.4f",1/3))
string.format("%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
-- 字符转换
-- 转换第一个字符
print(string.byte("Lua"))
-- 转换第三个字符
print(string.byte("Lua",3))
-- 转换末尾第一个字符
print(string.byte("Lua",-1))
-- 第二个字符
print(string.byte("Lua",2))
-- 转换末尾第二个字符
print(string.byte("Lua",-2))
-- 整数 ASCII 码转换为字符
print(string.char(97))
自动化平台 | 官方网站 | 交流学习 | 学习课程 | 公开课程 |
---|---|---|---|---|
懒人精灵 | 懒人精灵官网 | 正在跳转 562451816 | 💻进阶课程列表 | 官方课合集 |
AiWork | AIWork官网 | 正在跳转 818641934 | 📗中级课程 | 官方课合集 |
EasyClick | EasyClick官网 | 正在跳转 815053746 | ||
小派精灵 | 小派精灵官网 | 正在跳转 429533660 | ||
按键精灵 | 按键精灵官网 | 正在跳转 815057794 | ||
易语言 | 易语言官网 | |||
何鑫云机 | 合鑫云手机-云真机 | |||
鸟人云机 | 鸟人云手注册 | 鸟人云机下载 | 安卓7.1~10系统 |