我正在尝试将包含多个数字的字符串转换为单个 int 像这样:
x="5+5" --amount of numbers is not constant
y=tonumber(x)
print(y)
结果是nil
,而它应该是10
(int)。我解决这个问题的唯一方法是首先使用 string.find()
搜索所有 "+"
和 "-"
然后剪切它到所有必要的部分,然后从那里开始tonumber()
。为这样一个简单的问题编写至少一百行代码感觉很愚蠢。
最佳答案
tonumber
只能用于实数字符串,不能用于算术表达式。
您可以加载字符串并运行它:
x = "5 + 5"
func = assert(load("return " .. x))
y = func()
print(y)
在 Lua 5.1 中,使用 loadstring
而不是 load
。
关于string - Lua中计算字符串转换为int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21156354/