Lua字符串库(string库)学习笔记

论坛 期权论坛 脚本     
niminba   2021-5-23 03:54   2276   0

Lua 最强大的特性之一就是它的字符串处理能力,它支持字符格式化输出,具有可扩展的模式匹配查找功能,以及一些实用的字符操作,例如查询、截取、替换和删除等字符串操作,这些字符串操作函数都封装在一个名为 string 的模块里。

Lua 里的字符索引是从 1 开始,索引值也可以是负数,这种情况将被解释成向后索引,从字符串末尾开始算起。

下面是 Lua 5.2 提供的字符串操作函数:

byte

函数 string.byte 把字符串里的第 i 个字符转为 ASCII 编码,默认是输出第一个字符的编码(只有一个参数的话),用法:

复制代码 代码如下:

string.byte (s [, i [, j]])

例子:

复制代码 代码如下:

print(string.byte("abc")) //echo:97

print(string.byte("abc", 2))//echo:98

char

函数 string.char 是把一个 ASCII 编码转换为对应的字符,用法:

复制代码 代码如下:

string.char (asc1, ...)

例子:

复制代码 代码如下:

print(string.char(97)) //echo a

print(string.char(99, 100, 101)) //echo cde

dump

函数 string.dump 返回一个函数二进制形式的字符串,用法:

复制代码 代码如下:

string.dump (function)

参数 function 是一个 Lua 函数:

复制代码 代码如下:

function test()
    print("just a test")
end
print(string.dump(test))

函数 string.dump 实现了函数的序列化,函数可以很轻松的传递,并在其他作用域调用。函数 string.dump 出来的二进制字符串,可以用 load 函数反序列回来直接调用。

复制代码 代码如下:

function test()
    print("just a test")
end
local sd = string.dump(test)
print(sd)
local ls = load(sd)
print(ls)
ls()

find

函数 string.find 查找字符串 s 里第一个符合查找字符 pattern 的位置,用法:

复制代码 代码如下:

string.find (s, pattern [, init [, plain]])

如果找到了目标字符 pattern,则返回它的开始和结束位置:

复制代码 代码如下:

start, end = string.find("just a test", "st")
print(start, end)

如果没有找到,则返回 nil:

复制代码 代码如下:

print(string.find("just a test", "dhq.me"))

format

函数 string.format 用于把字符串格式化输出,用法:

复制代码 代码如下:

string.format (formatstring,
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1060120
帖子:212021
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP