从用逗号分隔的数字字符串中获取一个数组

如何将类似s = "6.1101,17.592,3.3245\n"的字符串转换为Lua中的数字。

在Python中,我通常会这样做:

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

在Lua中应该如何正确地实现这一点呢?

点赞
用户734069
用户734069

这相当容易;只需做一个重复的匹配:

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

当然前提是数字中没有空格。

2012-08-31 09:39:01