Lua 一行解析输出

Lua parsed output in one line

如何从解析成一行的内容中获取输出?

例如:

local input  = "56303031"
length = string.len(input)

for i = 1, length, 2 do 
  d = string.sub(input, i , i+1)
  a = string.char(tonumber(d, 16))
  print(a)
end

这会打印出:

但我希望它像这样打印出来:V001 -> 在一行中。

我该怎么做?

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)))

这将用数字代表的字符替换 input 中每组 2 个十六进制字符。