【问题标题】:Lua parsed output in one lineLua在一行中解析输出
【发布时间】:2021-08-25 12:15:13
【问题描述】:

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

例如:

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 -> 在一行中。

我该怎么做?

【问题讨论】:

标签: lua


【解决方案1】:

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 个十六进制字符替换为该数字所代表的字符。

【讨论】:

    猜你喜欢
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 2021-11-19
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多