Есть ли какой-нибудь хороший способ читать числа в квадратных скобках в Lua? - PullRequest
1 голос
/ 26 мая 2019

В Lua, есть ли хороший способ читать только числа с ввода, например, "[1,2,3,4]", если я знаю количество чисел

Я сделал io.read ("* n ") для каждого, но это просто возвращает ноль значений

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 с ','?

1 Ответ

1 голос
/ 26 мая 2019

Если вы уверены, что во входе нет пробелов, вы можете использовать этот код:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...