我正在尝试制作一个lua脚本,该脚本接受由逗号分隔的数字输入,并将其转换为字母,所以1 = ect,但是我还没有找到一种容易的方法,因为字符串libray输出a = 97,所以我不知道现在要去哪里,有什么帮助吗?
您可以使用string.byte和string.char函数:
string.char(97) == "a"
string.byte("a") == 97
Run Code Online (Sandbox Code Playgroud)
如果要从“ a”(97)开始,则只需减去该数字即可:
local function ord(char)
return string.byte(char)-string.byte("a")+1
end
Run Code Online (Sandbox Code Playgroud)
这将为“ a”返回1,为“ b”返回2,依此类推。您可以使它以类似的方式处理“ A”,“ B”和其他内容。
如果您需要数字到字符,则可以执行以下操作:
local function char(num)
return string.char(string.byte("a")+num-1)
end
Run Code Online (Sandbox Code Playgroud)
只需要考虑ascii表中az的起始值即可。
function convert(...)
local ar = {...}
local con = {}
for i,v in pairs(ar) do
table.insert(con, ("").char(v+96))
end
return con;
end
for i,v in pairs(convert(1,2,3,4)) do
print(v)
end
Run Code Online (Sandbox Code Playgroud)