Lua string(字符串)库方法以及必要的例子

本文介绍了Lua中字符串处理的库函数,包括查找、子串、模式匹配等操作。详细讲解了如string.find、string.gsub等函数的用法,并通过实例进行演示。字符串在Lua中以1开始索引,支持负数索引。字符串库函数都在全局表string中,可面向对象方式使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lua字符串处理API+例子

前言

string库提供了字符串处理的通用函数。 例如字符串查找、子串、模式匹配等。 当在Lua中对字符串做索引时,第一个字符从 1 开始计算(而不是 C 里的 0 )。 索引可以是负数,它指从字符串末尾反向解析。 即,最后一个字符在 -1 位置处,等等。

字符串库中的所有函数都在表 string 中。 它还将其设置为字符串元表的 __index 域。 因此,你可以以面向对象的形式使用字符串函数。 例如,string.byte(s,i) 可以写成 s:byte(i)

字符串库假定采用单字节字符编码。

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

返回字符 s[i]s[i+1], … ,s[j] 的内部数字编码。 i 的默认值是 1 ; j 的默认值是 i。 这些索引以函数 string.sub 的规则修正。

数字编码没有必要跨平台。

local str = "ABC"
print(s:byte(1, 3))
-- 65 66 67

string.char (···)

接收零或更多的整数。 返回和参数数量相同长度的字符串。 其中每个字符的内部编码值等于对应的参数值。

数字编码没有必要跨平台。

local str = string.char(65, 66, 67)
print(str)
-- ABC

string.dump (function [, strip])

返回包含有以二进制方式表示的(一个 二进制代码块 )指定函数的字符串。 之后可以用 load 调用这个字符串获得 该函数的副本(但是绑定新的上值)。 如果 strip 为真值, 二进制代码块不携带该函数的调试信息 (局部变量名,行号,等等。)。

带上值的函数只保存上值的数目。 当(再次)加载时,这些上值被更新为 nil 的实例。 (你可以使用调试库按你需要的方式来序列化上值,并重载到函数中)

常用于序列化:

function sum(num1, num2) do
    print(num1 + num2)
end
local dump_fun = string.dump(sum)
-- 将转化后的字符串写入文件
local dump_file = io.open("dump_sum.lua", "w")
dump_file:write(dump_fun)
dump_file:close()

-- 从文件读取内容
dump_file  = io.open("dump_sum.lua", "r")
local str = dump_file:read("*a")
dump_file:close()

-- 加载函数
local myfunc = loadstring(str)

-- 执行函数
myfunc(1, 1
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值