如何在Lua中将多行字体字符串转换为表格?
将换行分隔的字体字符串转为Lua数组表格
你通过fc-list命令获取到了换行分隔的字体名称字符串,想要把它转换成指定的Lua数组表格结构,只需对读取到的字符串做分割处理即可,以下是修改后的完整代码:
local font = io.popen("fc-list | cut -d ' ' -f 2- | cut -d : -f 1 | cut -d , -f 1 | sort | uniq") if font == nil then return end local fonts_str = font:read("*a") local fonts = {} -- 按换行符分割字符串,将每个字体名称存入数组 for line in string.gmatch(fonts_str, "[^\n]+") do table.insert(fonts, line) end -- 可选:打印验证数组结构 for i, name in ipairs(fonts) do print(string.format('fonts[%d] = "%s"', i, name)) end font:close()
关键说明:
- 拆分原代码中的
fonts变量,用fonts_str存储原始换行分隔字符串,fonts作为目标数组 - 利用
string.gmatch(fonts_str, "[^\n]+")遍历所有非换行内容,也就是每一行的字体名称 - 通过
table.insert将每个字体名称依次加入数组,最终得到{ "字体1", "字体2", ... }的结构
执行后,fonts数组就会以你期望的形式存储所有字体名称,可直接在后续逻辑中使用。
内容的提问来源于stack exchange,提问作者Amarakon
相关产品推荐
相关产品推荐

