Lua 的 string
库提供了一系列用于处理字符串的功能。这些功能包括查找、替换、分割字符串以及对字符串进行格式化等操作。下面是一些常用的 string
库函数及其用法:
字符串库函数
-
string.len(s)
- 返回字符串
s
的长度(以字节为单位)。
- 返回字符串
-
string.byte(s[, i])
- 返回字符串
s
中第i
个字符的整数表示(默认为第一个字符)。每个字符都是一个 8 位的字节。
- 返回字符串
-
string.char(…)
- 接受一系列整数作为参数,并返回一个包含这些整数对应的字符的字符串。
-
string.sub(s, i[, j])
- 返回字符串
s
的子串,从位置i
到j
(默认为字符串末尾)。
- 返回字符串
-
string.find(s, pattern[, init[, plain]])
- 在字符串
s
中查找pattern
。返回模式匹配部分的第一个和最后一个字符的位置。如果plain
为真,则模式被视为纯字符串。
- 在字符串
-
string.gsub(s, pattern, repl[, n])
- 在字符串
s
中全局替换所有与pattern
匹配的部分。repl
可以是字符串也可以是一个函数。n
表示替换的最大次数。
- 在字符串
-
string.rep(s, n)
- 返回由字符串
s
复制n
次的结果。
- 返回由字符串
-
string.lower(s)
- 将字符串
s
中的所有字母转换为小写。
- 将字符串
-
string.upper(s)
- 将字符串
s
中的所有字母转换为大写。
- 将字符串
-
string.reverse(s)
- 返回字符串
s
的逆序版本。
- 返回字符串
-
string.format(format, …)
- 返回格式化的字符串。
format
是一个带有占位符的字符串,...
是要插入的值。
- 返回格式化的字符串。
-
string.pack(s)
- 将字符串
s
打包成一个二进制形式,这个形式可以用string.unpack
来解包。
- 将字符串
-
string.unpack(b [, i [, n]])
- 解包由
string.pack
创建的二进制数据块b
,从位置i
开始,最多解包n
个元素。
- 解包由
-
string.rep(s, n)
- 返回由字符串
s
重复n
次的结果。
- 返回由字符串
示例
让我们看一些 string
库函数的示例用法:
-- 获取字符串长度
print(string.len("Hello, world!")) -- 输出: 13
-- 获取字符的 ASCII 值
print(string.byte("Hello, world!", 1)) -- 输出: 72
-- 将 ASCII 值转换为字符
print(string.char(72, 101, 108, 108, 111)) -- 输出: Hello
-- 获取子字符串
print(string.sub("Hello, world!", 8)) -- 输出: world!
-- 查找字符串
local pos = string.find("Hello, world!", "world")
print(pos) -- 输出: 8
-- 替换字符串
print(string.gsub("Hello, world!", "world", "Lua")) -- 输出: Hello, Lua!
-- 字符串反转
print(string.reverse("Hello, world!")) -- 输出: !dlrow ,olleH
-- 格式化字符串
print(string.format("%s %s", "Hello", "world!")) -- 输出: Hello world!
这些函数非常有用,可以帮助你在 Lua 中高效地处理字符串。如果你有具体的使用场景或者需要进一步的帮助,请告诉我!