【问题标题】:find a letters in a string from table is only working with the first item从表中查找字符串中的字母仅适用于第一项
【发布时间】:2013-03-25 20:41:03
【问题描述】:

嗨,如果没有 lua 代码,我无法解释它 问题是它只是抓住了表格的第一项 如果我写了 te = "f... you" 它将返回 true ,但如果我写了 te = "a.." 它将返回 false -_-

我只是想从字符串中找出不好的词,这里是代码 * 抱歉我没有写完整的坏话

local te = "f... you"
badwords = {
"f...",
"a..",
"s...",
"b....",
"g..",
"w....",
}

以及功能:

function isTextContainsBadwords(str)
  for i,v in ipairs(badwords) do
    if str:find(v) then
      return true
    else
      return false
    end
  end
end
print(tostring(isTextContainsBadwords(te)))

【问题讨论】:

    标签: string lua find lua-table


    【解决方案1】:

    这是因为当您迭代表 badwords 时,其中的第一个字符串 "f..."a.. 不匹配,并且 else 块中有一个 return false;终止代码的执行。

    那里不需要else 块。只需将return false 置于for 循环之外即可。

    function isTextContainsBadwords(str)
        for i,v in ipairs(badwords) do
            if str:find(v) then
                return true
            end
        end
        return false
    end
    

    【讨论】:

    • 啊,我没注意到这个,非常感谢^^食梦者^^
    猜你喜欢
    • 2018-09-18
    • 1970-01-01
    • 2017-08-09
    • 2017-11-12
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 2014-12-06
    相关资源
    最近更新 更多