字符串或串(String)是由数字、字母、下划线组成的一串字符。

    Lua语言中字符串可以使用以下三种方式来表示:

    • 单引号间的一串字符

    • 双引号的一串字符

    • [[和]]间的一串字符

    以上三种方式的字符串实例如下:

    1. string1 = "Lua"
    2. print("\"字符串 1 是\"",string1)
    3. string2 = 'runoob.com'
    4. print("字符串 2 是",string2)
    5. string3 = [["Lua 教程"]]
    6. print("字符串 3 是",string3)

    以上代码执行输出结果是:

    1. "字符串 1 是" Lua
    2. 字符串 2 runoob.com
    3. 字符串 3 "Lua 教程"

    转义字符用于表示不能直接显示的字符,比如后退键,回车键,等。如在字符串转换双引号可以使用 “\””。所有的转义字符和所对应的意义:
    Lua 字符串 - 图1

    符串操作
    Lua 字符串 - 图2

    字符串格式化
    Lua 提供了 string.format() 函数来生成具有特定格式的字符串, 函数的第一个参数是格式 , 之后是对应格式中每个代号的各种数据。
    由于格式字符串的存在, 使得产生的长字符串可读性大大提高了。这个函数的格式很像 C 语言中的 printf()。

    以下实例演示了如何对字符串进行格式化操作:格式字符串可能包含以下的转义码:

    • %c - 接受一个数字, 并将其转化为ASCII码表中对应的字符

    • %d, %i - 接受一个数字并将其转化为有符号的整数格式

    • %o - 接受一个数字并将其转化为八进制数格式

    • %u - 接受一个数字并将其转化为无符号整数格式

    • %x - 接受一个数字并将其转化为十六进制数格式, 使用小写字母

    • %X - 接受一个数字并将其转化为十六进制数格式, 使用大写字母

    • %e - 接受一个数字并将其转化为科学记数法格式, 使用小写字母e

    • %E - 接受一个数字并将其转化为科学记数法格式, 使用大写字母E

    • %f - 接受一个数字并将其转化为浮点数格式

    • %g(%G) - 接受一个数字并将其转化为%e(%E, 对应%G)及%f中较短的一种格式

    • %q - 接受一个字符串并将其转化为可安全被Lua编译器读入的格式

    • %s - 接受一个字符串并按照给定的参数格式化该字符串

    为进一步细化格式, 可以在%号后添加参数. 参数将以如下的顺序读入:

    • (1) 符号: 一个+号表示其后的数字转义符将让正数显示正号. 默认情况下只有负数显示符号.

    • (2) 占位符: 一个0, 在后面指定了字串宽度时占位用. 不填时的默认占位符是空格.

    • (3) 对齐标识: 在指定了字串宽度时, 默认为右对齐, 增加-号可以改为左对齐.

    • (4) 宽度数值

    • (5) 小数位数/字串裁切: 在宽度数值后增加的小数部分n, 若后接f(浮点数转义符, 如%6.3f)则设定该浮点数的小数只保留n位, 若后接s(字符串转义符, 如%5.3s)则设定该字符串只显示前n位.


    Lua 字符串 - 图3