在Lua中用索引替换字符串字符

时间:2014-07-24 22:00:28

标签: string lua char

如果你每个人都扮演刽子手,你会很容易理解我想要完成的事情。我想要的是用某些索引替换其他字符的字符。这就是我目前正在做的事情:

word = getwordoflength(10)
found = string.rep("_", 10)

while found ~= word do

  char = getcharfromuser()

  temp = ""
  for i = 1, 10 do
    if word:sub(i, i) == char then
      temp = temp..char
    else
      temp = temp..found:sub(i, i)
    end
  end
  found = temp
end

现在,对我而言,这似乎是非常愚蠢和低效的,但也许没有更好的方法。最重要的是,'权利'这样做的方法?

1 个答案:

答案 0 :(得分:2)

while found ~= word do
   local char = getcharfromuser()
   for i in word:gmatch('()'..char) do
      found = found:sub(1,i-1)..char..found:sub(i+1)
   end
end

还有一种方法:

while found ~= word do
   local char = getcharfromuser()
   for i in word:gmatch('()'..char) do
      found = found:gsub('().', {[i]=char})
   end
end