|
发表于 2015-6-23 10:44:17
|
显示全部楼层
我这里有个汉字转换成数字的函数,看你能用上不
function getnumber(n)
--把汉字翻译为数字
local num=0
local h_pos=0
local l_pos=0
local retext
for i=1,string.len(n),2 do
local w=string.sub(n,i,i+1)
if w=="亿" then
num=num+h_pos*10000000
h_pos=0
elseif w=="万" then
num=num+h_pos*10000
h_pos=0
elseif w=="千" then
num=num+h_pos*1000
h_pos=0
elseif w=="百" then
num=num+h_pos*100
h_pos=0
elseif w=="十" then
if h_pos==0 then
num=num+10
else
num=num+h_pos*10
h_pos=0
end
elseif w=="一" then
h_pos=1
elseif w=="二" then
h_pos=2
elseif w=="三" then
h_pos=3
elseif w=="四" then
h_pos=4
elseif w=="五" then
h_pos=5
elseif w=="六" then
h_pos=6
elseif w=="七" then
h_pos=7
elseif w=="八" then
h_pos=8
elseif w=="九" then
h_pos=9
elseif w=="零" then
h_pos=0
else
retext=string.sub(n,i,-1)
break
end
end
num=num+h_pos
return num,retext
end
两个返回值,第一个是数字,第二个是去除数字的其他字符
比如输入:两双袜子
那么返回值就是:
2
双袜子
大体就是这样
代码也是我抄的别人的,超过10万会识别错,不过一般mud用不到那么大...... |
|