【问题标题】:using string.find to find a string in a list (Lua)使用 string.find 在列表中查找字符串(Lua)
【发布时间】:2021-01-18 11:19:15
【问题描述】:

我正在 lua 中为一款名为“Stormworks”的游戏制作脚本,但我不知道如何在列表中搜索某个单词

目前我正在使用它,但它说它不适用于列表

if string.find(message,Word_list)
then
server.announce("[Server]", "hey! "..sender_name.." watch your language")
end

【问题讨论】:

标签: string lua


【解决方案1】:

string.find 不接受 table 作为参数。此外,除非您正在寻找字符串中的特定模式,否则无需使用string.find 来检查字符串是否相等;请改用== 运算符。

如果您有一个包含 n 个字符串的表,并且您正在搜索特定字符串(同样,只是简单的相等),则遍历表并检查每个元素。

-- Requires: tbl is a table containing strings; str is a string.
-- Effects : returns true if tbl contains str, false otherwise.
local function find_string_in(tbl, str)
    for _, element in ipairs(tbl) do
        if (element == str) then
            return true
        end
    end
    return false
end

local t = {"hello", "there", "friend"}
print(find_string_in(t, "friend"))
print(find_string_in(t, "goodbye"))

这会产生以下输出:

true
false

【讨论】:

    猜你喜欢
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    • 2019-11-03
    相关资源
    最近更新 更多