Lua如何遍历字符串单词并存入非列表形式的表?
在Lua中将空格分隔的单词存入非列表形式的表
核心实现方法
用Lua内置的string.gmatch生成迭代器,遍历字符串里的每个非空白单词,再将单词以键值对形式存入哈希表(而非数字索引的列表)。
示例代码
-- 待处理的单词字符串 local str = "skylift valkyrie2 airbus hunter adder bus armytanker armytrailer armytrailer2 baletrailer boattrailer" -- 初始化非列表形式的表(哈希表) local word_table = {} -- 遍历每个单词并存入表 for word in string.gmatch(str, "%S+") do -- 将单词作为键,值设为true(可根据需求替换为其他值) word_table[word] = true end -- 可选:打印验证结果 for k, v in pairs(word_table) do print(k, v) end
代码说明
string.gmatch(str, "%S+"):返回一个迭代器,每次迭代自动提取字符串中连续的非空白字符(即单个单词),无需手动处理空格分隔逻辑。- 用
word_table[word] = true存入数据:最终表的结构是哈希表(键为单词,值自定义),完全区别于数字索引的列表形式,适合快速判断单词存在性、做去重等操作。如果需要把单词作为值,也可以自定义键(比如计数、哈希值等),按需调整即可。
内容的提问来源于stack exchange,提问作者HenkieThee
相关产品推荐
相关产品推荐

