字符串格式化

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)

  1. string1 = "Lua"
  2. string2 = "Tutorial"
  3. number1 = 10
  4. number2 = 20
  5. -- 基本字符串格式化
  6. print(string.format("基本格式化 %s %s",string1,string2))
  7. -- 日期格式化
  8. date = 2; month = 1; year = 2014
  9. print(string.format("日期格式化 %02d/%02d/%03d", date, month, year))
  10. -- 十进制格式化
  11. print(string.format("%.4f",1/3))
  1. string.format("%c", 83) -- 输出S
  2. string.format("%+d", 17.0) -- 输出+17
  3. string.format("%05d", 17) -- 输出00017
  4. string.format("%o", 17) -- 输出21
  5. string.format("%u", 3.14) -- 输出3
  6. string.format("%x", 13) -- 输出d
  7. string.format("%X", 13) -- 输出D
  8. string.format("%e", 1000) -- 输出1.000000e+03
  9. string.format("%E", 1000) -- 输出1.000000E+03
  10. string.format("%6.3f", 13) -- 输出13.000
  11. string.format("%q", "One\nTwo") -- 输出"One\
  12. --   Two"
  13. string.format("%s", "monkey") -- 输出monkey
  14. string.format("%10s", "monkey") -- 输出 monkey
  15. string.format("%5.3s", "monkey") -- 输出 mon
  1. -- 字符转换
  2. -- 转换第一个字符
  3. print(string.byte("Lua"))
  4. -- 转换第三个字符
  5. print(string.byte("Lua",3))
  6. -- 转换末尾第一个字符
  7. print(string.byte("Lua",-1))
  8. -- 第二个字符
  9. print(string.byte("Lua",2))
  10. -- 转换末尾第二个字符
  11. print(string.byte("Lua",-2))
  12. -- 整数 ASCII 码转换为字符
  13. print(string.char(97))
自动化平台 官方网站 交流学习 学习课程 公开课程
懒人精灵 懒人精灵官网 正在跳转 562451816 💻进阶课程列表 官方课合集
AiWork AIWork官网 正在跳转 818641934 📗中级课程 官方课合集
EasyClick EasyClick官网 正在跳转 815053746
小派精灵 小派精灵官网 正在跳转 429533660
按键精灵 按键精灵官网 正在跳转 815057794
易语言 易语言官网
何鑫云机 合鑫云手机-云真机
鸟人云机 鸟人云手注册 鸟人云机下载 安卓7.1~10系统