比较字符串,如果Lua中最多只有一个错误的字符

时间:2014-01-12 14:22:31

标签: string lua split lua-patterns

我有一个字,我想检查它是否等于另一个字。如果是这样,那么一切都是正确的,但如果只有一个(也是唯一一个)错误的角色也是正确的。

local word = "table"
local word2 = "toble"
if word == word2 then
  print("Ok")
end

如何拆分word2

1 个答案:

答案 0 :(得分:4)

您可以首先比较字符串的长度,如果它们相等则从第一个字符开始比较,如果有一个字符不同,那么其余部分必须相同才能使条件成立:

function my_compare(w1, w2)
    if w1:len() ~= w2:len() then
        return false
    end
    for i = 1, w1:len() do
        if w1:sub(i, i) ~= w2:sub(i, i) then
            return w1:sub(i + 1) == w2:sub(i + 1)
        end
    end
    return true
end