Как извлечь числа из строки? - PullRequest
2 голосов
/ 25 апреля 2019

Как мне извлечь каждое число из строки и поместить их в массив?

Например, строка: "\ 113 \ 115 \ 106 \ 111 \ 117 \ 41 \ 40 \ 105 \ 102 \ 109 \ 109 \ 112 \ 40 \ 42"

1 Ответ

1 голос
/ 25 апреля 2019

Вы можете использовать string.gmatch так:

local my_array = {}
local my_string = "\\113\\115\\106\\111\\117\\41\\40\\105\\102\\109\\109\\112\\40\\42"
print(my_string) --note how the string is \ followed by digits
for number in string.gmatch(my_string, "\\(%d+)") do
   my_array[#my_array + 1] = tonumber(number)
   print(number)
end

Это даст вам таблицу со всеми числами из вашей строки. В моем примере \ экранируется, чтобы сделать его равным указанной вами строке.

Если я неправильно понял ваш вопрос, и вы хотите получить цифры из символов, тогда вам нужно будет сделать

local my_array = {}
local my_string = "\113\115\106\111\117\41\40\105\102\109\109\112\40\42"
print(my_string) --note how the string is letters
for char in string.gmatch(my_string, ".") do
    my_array[#my_array + 1] = string.byte(char)
    print(char, my_array[#my_array])
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...