Разбор строки в LUA - PullRequest
       2

Разбор строки в LUA

0 голосов
/ 07 сентября 2018

Я оглядывался по сторонам и прочитал много разных ответов, но, похоже, никто не отвечает на мой конкретный запрос.

Я делаю циферблаты для Wear OS 2 с приложением под названием WATCHMAKER, которое использует LUA в качестве языка. Я хочу сделать циферблат со специальными часами, указывающими на число в зависимости от значения сахара в крови, посылаемого передатчиком, подключенным к телу.

Строковые значения, которые я хочу проанализировать, соответствуют следующему синтаксису:

<DECIMAL NUMBER> <ARROW> (<TIME>)

Один пример будет

5,6 -> (1m)

Я хочу извлечь <DECIMAL NUMBER> часть чтения. В приведенном выше примере я хочу значение 5,6.

Каждые 5 минут передатчик отправляет новое чтение, вся эта информация изменяется: 5,8 - (30 секунд)

Большое спасибо

1 Ответ

0 голосов
/ 07 сентября 2018

Скажем, у вас есть строка, в LUA, s="14,11 -> (something)", и вы хотите, чтобы это первое число строки было проанализировано с плавающей точкой, чтобы вы могли выполнять математические операции с ней.

s='9,6 -> (24m)'
-- Now we use so called regular expressions
-- to parse the string
new_s=string.match(s, '[0-9]+,[0-9]+')
-- news now has the number 9,6. Which is now parsed
-- however it's still a string and to be able to treat
-- it like a number, we have to do more:
-- But we have to switch the comma for a period
new_s=new_s:gsub(",",".")
-- Now s has "9.6" as string
-- now we convert it to a number
number = string.format('%.10g', tonumber(new_s))
print(number)

Теперь number содержит число 9.6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...