Lua 用字符代替整数
我正在做一个项目,我需要找到从字符“K”、“M”或“B”中替换的整数值。 我正在尝试为用户找到最好的方法来输入字符串,例如1k 12k 100k,并以适当的方式接收返回的值。例如,用户输入12k,我将收到12000 我是Lua的新手,我对字符串模式不是很在行Lua 用字符代替整数,lua,Lua,我正在做一个项目,我需要找到从字符“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 您可以像%d+[kmb
if (string.match(text, 'k')) then
print(text)
local test = string.match(text, '%d+')
print(test)
end
您可以像%d+[kmb]一样匹配模式,以分别获得数字和后缀。然后只需对第一部分进行编号,然后使用表格将后者映射到一个因子,例如,并将其与结果相乘 局部因子={k=1e3,m=1e6,-[等等]]} 本地数字,后缀=string.matchtext,'%d+[kmb]' 局部结果=tonumbernum*因子[后缀]
您可以像%d+[kmb]一样匹配模式,以分别获得数字和后缀。然后只需对第一部分进行编号,然后使用表格将后者映射到一个因子,例如,并将其与结果相乘 局部因子={k=1e3,m=1e6,-[等等]]} 本地数字,后缀=string.matchtext,'%d+[kmb]' 局部结果=tonumbernum*因子[后缀] 我不知道你用什么因子来表示M和B,那应该是什么?百万和十亿 我建议你使用国际标准。千克,百万米,千兆克 那么看起来是这样的:
local text = "1k"
print(tonumber((text:gsub("[mkMG]", {m = "e-3", k="e3", M="e6", G="e9"})))) --and so on
我不知道你用什么因子来表示M和B,那应该是什么?百万和十亿
我建议你使用国际标准。千克,百万米,千兆克
那么看起来是这样的:
local text = "1k"
print(tonumber((text:gsub("[mkMG]", {m = "e-3", k="e3", M="e6", G="e9"})))) --and so on