Lua脚本需求:将字符串单词填入表格并输出可复制表格结构
Lua脚本修正:将输入单词填入预设表格
我编写了一段Lua脚本,希望将输入字符串中的3个单词填入预设表格,最终输出可直接复制粘贴的表格结构。
当前脚本
local tbl = { {1, "", 0}, {2, "", 0}, {3, "", 0} } local input = "i hate debugging" local words = {} x = 0 repeat x = x + 1 for i, v in ipairs(tbl) do if tonumber(v[1]) == x then for word in input:gmatch"[^ ,\r\n]+" do table.insert(words, word) end end end until x == 1
期望输出
{1, "i", 0}, {2, "hate", 0}, {3, "debugging", 0},
问题分析与修正方案
原脚本逻辑冗余且终止条件错误:仅循环到x==1,未处理第2、3行;还会重复将所有单词插入words表,导致数据冗余。
以下是修正后的简洁脚本:
-- 预设表格 local tbl = { {1, "", 0}, {2, "", 0}, {3, "", 0} } -- 输入字符串 local input = "i hate debugging" -- 拆分输入为单词列表 local words = {} for word in input:gmatch("[^%s,]+") do table.insert(words, word) end -- 将单词对应填入表格 for i, row in ipairs(tbl) do row[2] = words[i] or row[2] -- 单词数量不足时保留原空值 end -- 输出可直接复制的格式 for _, row in ipairs(tbl) do print(string.format(" {%d, \"%s\", 0},", row[1], row[2])) end
修正说明
- 拆分单词:用
gmatch("[^%s,]+")一次性提取输入中所有非空白、非逗号的单词,存入words表。 - 填充表格:遍历预设表格,通过索引对应将单词填入每行的第二个字段,兼容单词数量不足的情况。
- 输出格式:用
string.format按期望格式输出每行内容,直接复制即可使用。
内容的提问来源于stack exchange,提问作者SMEEDLE
相关产品推荐
相关产品推荐

