我一直想知道太久了:是否有可能以任何方式将包含方程式的String转换为Int?
例如,这就是我尝试过的:
var equation: String? = "\(5) \(+) \(8)" // 5, +, and 8 would be generated Ints/operaters
if let answer = Int(equation) {
print("\(answer)")
}
我一直试图找到一种方法来跨越各种语言,没有运气。任何帮助表示赞赏。
答案 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用于无用的答案(请参阅悬停文本),而不是在有更好的答案的时候(见评论)