我正在尝试在 Lua 中执行一个函数来交换字符串中的字符。
有人可以帮助我吗?
这是一个例子:
Input = "This LIBRARY should work with any string!"
Result = "htsil biaryrs ohlu dowkrw ti hna ytsirgn!"
注意:空间也被交换
非常感谢您 :)
最简单和最清晰的解决方案是:
Result = Input:gsub("(.)(.)","%2%1")
这应该这样做:
input = "This LIBRARY should work with any string!"
function swapAlternateChars(str)
local t={}
-- Iterate through the string two at a time
for i=1,#str,2 do
first = str:sub(i,i)
second = str:sub(i+1,i+1)
t[i] = second
t[i+1] = first
end
return table.concat(t)
end
print(input)
print(swapAlternateChars(input))
印刷:
This LIBRARY should work with any string!
hTsiL BIARYRs ohlu dowkrw ti hna ytsirgn!
如果您需要以小写形式输出,则可以始终以以下方式结束:
output = swapAlternateChars(input)
print(string.lower(output))
注意,在这个例子中,我实际上并没有编辑字符串本身,因为 Lua 中的字符串是不可变的。这里有一个读物:在 Lua 中修改字符串中的一个字符
我使用了一个表来避免连接到字符串的开销,因为每个连接都可能在内存中分配一个新字符串。