Swift:在String中计算方程并转换为Int

时间:2015-10-20 21:56:11

标签: string swift parsing equation

我一直想知道太久了:是否有可能以任何方式将包含方程式的String转换为Int?

例如,这就是我尝试过的:

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

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

我一直试图找到一种方法来跨越各种语言,没有运气。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:-2)

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

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

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

上次编辑:另请查看Shunting-yard algorithm和广义Operator-precedence parsing。我现在非常想尝试在Swift中编写一个简单的...

发布最后一次编辑:There exists a Swift library for that :D。另外:Downvotes用于无用的答案(请参阅悬停文本),而不是在有更好的答案的时候(见评论)