string - Lua中计算字符串转换为int

标签 string lua numbers

我正在尝试将包含多个数字的字符串转换为单个 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/

相关文章:

c# - 通用类和约束

java - 从 Java 序列中分割特定字符

lua - 如何创建在调用某个函数时调用函数的函数?

numpy - Lua Torch 相当于 np.where()?

assembly - 如何使用 FASM 编译器以汇编语言生成随机数?

regex - 在批处理文件中检查字符串中的子字符串(Windows)?

java - 在Java中使用startsWith和endsWith时如何忽略大小写?

c - C 中的伪随机数生成器 - 使用时间函数播种

lua - 从以逗号分隔的数字字符串中获取数组

regex - 如何在此正则表达式中包含负十进制数?