将字符替换为整数

我正在开发一个项目,需要从字符中找到替换为整数的值,这些字符可以是'K'、'M'或'B'。 我正在尝试寻找最好的用户输入方式,比如输入"1k"、"12k"或"100k"并以合适的方式接收值,比如用户输入"12k",我会收到"12000"。

我对Lua还比较新,也不太擅长字符串模式匹配。

if (string.match(text, 'k')) then
  print(text)
  local test = string.match(text, '%d+')
  print(test)
end
点赞
用户4984564
用户4984564

你可以使用(%d+)([kmb])这样的模式来分别匹配数字和后缀。然后只需将第一部分用tonumber转换为数字,将后缀映射到因子上(例如使用表格),并将它与结果相乘。

local factors = { k=1e3, m=1e6, --[等等]}
local num, suffix = string.match(text, '(%d+)([kmb])')
local result = tonumber(num) * factors[suffix]
2021-06-08 07:21:43
用户2858170
用户2858170
本地文本 = “1k”
打印(tonumber((本地文本:lower():gsub("[kmb]", {k="e3"}))))

我不知道您用什么因素来表示M和B。那是百万和十亿吗?

我建议您使用国际标准。千(k)、兆(M)、吉(G)等。

这样看起来就像这样:

本地文本 = “1k”
打印(tonumber((本地文本:gsub("[mkMG]", {m = "e-3", k="e3", M="e6", G="e9"}))))  --等等
2021-06-08 08:13:37