已经知道如何展示特定角色。
table {"abc"}
return string.sub(table[1], 2, 2)
b
但是想要替换表中的1个特定字符而不用更改整个字符串。
table = {"abc"}
到
table = {"axc"}
答案 0 :(得分:6)
在Lua中,字符串是严格不可变的,因此它们本身不能更改。
因此,实现此目的的唯一方法是使用您想要的内容创建一个新字符串,并将其插入table[1]
。字符串是否在表格内并不重要。
这可以通过获取字符串的开头和结尾并将它们与新部分连接来完成:
local index = 2 -- The character we want to change
table[1] = string.sub(table[1], 1, index - 1) .. "x" .. string.sub(table[1], index + 1, -1)
这将从字符串的开头提取所有字符,直到我们希望的字符前面的#34;替换",追加新字符,然后追加旧字符串的其余部分,不包括字符我们"替换"
然而,在大多数情况下,使用像这样的单个字符并不是很明智,因为Lua具有相当强大的模式匹配和替换功能,例如string.gsub,它允许您更换更多复杂的子串很容易。 (来自Lua编程的使用示例here)