在Lua中将计算字符串转换为int

时间:2014-01-16 08:05:51

标签: string lua numbers

我正在尝试将一个包含多个数字的字符串添加到单个int中 像这样:

x="5+5"  --amount of numbers is not constant
y=tonumber(x)
print(y) 

结果是nil,而它应该是10(int)。我能解决这个问题的唯一方法是首先用"+"搜索所有"-"string.find(),然后将其剪切到所有必要的部分,然后从那里tonumber()。为这样一个简单的问题编写至少一百行代码感觉很愚蠢。

1 个答案:

答案 0 :(得分:3)

tonumber只能用于实数的字符串,而不能用于算术表达式。

您可以加载字符串并运行它:

x = "5 + 5"
func = assert(load("return " .. x))
y = func()
print(y)

在Lua 5.1中,使用loadstring代替load