如何替换Lua表中特定字符而不是整个字符串?

已经知道如何显示特定字符。

table {"abc"}
return string.sub(table[1], 2, 2)
b

但是想要替换表格内的一个特定字符而不改变整个字符串。

table = {"abc"}

变成

table = {"axc"}
点赞
用户88888888
用户88888888

在 Lua 中,字符串是严格不可变的,因此它们本身不能被更改。

因此,实现这一目标的唯一方法是创建一个具有所需内容的新字符串并将其插入到 table[1] 中。字符串是否在表内并不重要。

例如,通过将字符串的开头和结尾与新部分连接起来,可以实现以下操作:

local index = 2 -- 我们要更改的字符
table[1] = string.sub(table[1], 1, index - 1) .. "x" .. string.sub(table[1], index + 1, -1)

这将提取出从字符串开头到我们要“替换”的字符之前的所有字符,将新字符附加在其后,然后附加上旧字符串的其余部分(不包括我们“替换”的字符)。

然而,在大多数情况下,不建议这样玩单个字符,因为 Lua 具有相当强大的模式匹配和替换工具(例如 string.gsub,它允许您轻松替换更复杂的子字符串。 (来自 Programming in Lua 的使用示例可在此处找到)

2014-11-04 13:35:13