print
命令会在结尾添加一个换行符。建议使用 io.write
命令来代替。
local input = "56303031"
local length = string.len(input)
for i = 1, length, 2 do
local d = string.sub(input, i , i+1)
local a = string.char(tonumber(d, 16))
io.write(a)
end
或者在结尾处组合一个字符串并打印出来:
local input = "56303031"
local length = string.len(input)
local str = ""
for i = 1, length, 2 do
local d = string.sub(input, i , i+1)
local a = string.char(tonumber(d, 16))
str = str .. a
end
print(a)
或者你可以使用gsub在打印之前修改字符串:
local input = "56303031"
print((input:gsub("%x%x", function (x) return string.char(tonumber(x, 16)) end)))
这将用每组2个十六进制字符所代表的字符替换 input
中的字符。