我正在尝试在Lua中执行一个函数来交换字符串中的字符 有人能帮助我吗?
以下是一个例子:
Input = "This LIBRARY should work with any string!"
Result = "htsil biaryrs ohlu dowkrw ti hna ytsirgn!"
注意:空格也被交换
非常感谢你:)
答案 0 :(得分:5)
最简单,最清晰的解决方案是:
Result = Input:gsub("(.)(.)","%2%1")
答案 1 :(得分:4)
这应该这样做:
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中的字符串是不可变的。这是一个阅读:Modifying a character in a string in Lua
我使用了一个表来避免连接到字符串的开销,因为每个连接可能会在内存中分配一个新的字符串。