2012-08-31 60 views
2

如何将一个像s = "6.1101,17.592,3.3245\n"这样的字符串转换为Lua中的数字。从用逗号分隔的一串数字获取数组

在Python中,我通常做

a = s.strip().split(',') 
a = [float(i) for i in a] 

什么是Lua中做到这一点的正确方法?

回答

3

这是相当平凡的;只是做一个重复的匹配:

for match in s:gmatch("([%d%.%+%-]+),?") do 
    output[#output + 1] = tonumber(match) 
end 

这当然假定数字中没有空格。

+3

使用's:gmatch(“([^,%s] +)”)'可能更健壮,也允许空格。另一方面,这种模式将提取逗号之间的任何“单词”,而不仅仅是数字。 – lhf

相关问题