You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua中如何将table(表)数据转换为字符串?

Lua实现表转字符串的方法

Lua里的字符串是不可变的,没法像C那样直接通过索引赋值修改,但有几种简单方法能实现表转字符串:

方法1:用table.concat(效率最高,优先用)

如果你的表存的是ASCII字节值(对应C里的table[i]),可以先把每个字节转成字符,再用这个方法一次性拼接:

-- 示例:表中存A到J的ASCII码
local byte_table = {65, 66, 67, 68, 69, 70, 71, 72, 73, 74}
local char_list = {}
for i, byte in ipairs(byte_table) do
    char_list[i] = string.char(byte)
end
local result_str = table.concat(char_list)

要是表本身已经存的是单个字符,直接调用table.concat(你的表)就行,不用额外转换。

方法2:逐个拼接字符(逻辑简单,小数据量适用)

因为字符串不可变,每次拼接都会生成新字符串,数据量大时效率偏低,但理解起来直观:

local byte_table = {65, 66, 67, 68, 69, 70, 71, 72, 73, 74}
local result_str = ""
-- 对应C里i从0到9的循环,Lua表默认从1开始,所以循环1到10
for i = 1, 10 do
    -- 把字节转成字符后追加到字符串
    result_str = result_str .. string.char(byte_table[i])
end

补充:字符串转表的完整示例

你提到用:byte(i)实现反向操作,这里给个完整代码:

local str = "ABCDEFGHIJ"
local byte_table = {}
for i = 1, #str do
    byte_table[i] = str:byte(i)
end
-- byte_table现在就是{65,66,...,74}

内容的提问来源于stack exchange,提问作者terefere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:24:07