Swift: 计算字符串内的方程并转换为 Int

Swift: Compute equation within String and convert to Int

我想知道的时间太长了:是否有可能以任何方式将包含方程式的字符串转换为 Int?

例如,这是我试过的:

var equation: String? = "\(5) \(+) \(8)" // 5, +, and 8 would be generated Ints/operaters

if let answer = Int(equation) {
    print("\(answer)")
}

我一直在尝试寻找一种方法来跨多种语言执行此操作,但没有成功。感谢任何帮助。

您正在寻找一个算术表达式求值器,这不是一件容易的事,而且没有一个简单的函数可以做到这一点。您可以尝试找到一个简单的开源实现。

编辑:看看 Arithmetic Evaluation Rosetta Code page,这可能是您想要的最简单的东西。目前还没有 Swift 版本,但您应该可以通过查看其他语言来自己完成。

另一个编辑:查看 this Code Golf Thread,其中包含某些语言中最短的算术表达式求值器(还没有 Swift)

最后编辑:另请查看 Shunting-yard algorithm and generalised Operator-precedence parsing。我现在非常尝试在 Swift...

中写一个简单的

Post 最后编辑:There exists a Swift library for that :D。另外:Downvotes 是针对无用的答案(见悬停文本),而不是当有更好的答案时(见评论)