修改Lua中字符串中的字符
有没有办法替换Lua中字符串中位置N处的字符。
这是我到目前为止所提出的:
function replace_char(pos, str, r)
return str:sub(pos, pos - 1) .. r .. str:sub(pos + 1, str:len())
end
str = replace_char(2, "aaaaaa", "X")
print(str)
我不能使用gsub,因为它会取代每个捕获,而不仅仅是位置N的捕获。
没有找到相关结果
已邀请:
3 个回复
搂腹时
是直截了当的Lua的最直接的翻译。对于大多数用途来说,它可能足够快。我已经修复了前缀应该是第一个
字符的错误,并利用了如果缺少
的最后一个参数,它被假定为
,这相当于字符串的结尾。 但请注意,它会创建一些临时字符串,这些字符串将在字符串存储中挂起,直到垃圾回收占用它们。在任何解决方案中都无法避免前缀和后缀的临时性。但这也必须为第一个
操作员创建一个临时的第二个消费者。 两种替代方法中的一种可能更快。第一个是PaŭloEbermann提供的解决方案,但有一个小调整:
这使用
来组装结果,希望它能猜出最终的缓冲区大小,而不需要额外的临时对象。 但请注意,
可能与任何字符串中的任何