Lua中有没有好的方法来读取方括号中的数字?

在Lua中,如果我知道数字的数量,有没有好的方法来读取像“[1,2,3,4]”中的数字?

我针对每个数字使用了 io.read("*n"),但是它只返回 nil 值

local num = io.read()
for i = 1, num do
    print(io.read("*n"))
end

对于该代码的输入是

4
[1,1,15,54]

输出是

nil
nil
nil
nil

我期望的输出是

1
1
15
54

我应该只是使用 string.find 和 sub 与 ',' 吗?

点赞
用户107090
用户107090

如果你确定输入中没有空格,你可以使用以下代码:

local num = io.read()
for i = 1, num do
    io.read(1)
    print(io.read("*n"))
end

第一个 io.read(1) 读取 [,接下来的读取逗号。关闭 ] 没有被读取。

读取整行并解析更加健壮:

local num = io.read()
local lin = io.read()
local i=0
for w in lin:gmatch("%d+") do
    i=i+1
    print(i,w)
end
2019-05-26 17:48:41