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 是针对无用的答案(见悬停文本),而不是当有更好的答案时(见评论)
我想知道的时间太长了:是否有可能以任何方式将包含方程式的字符串转换为 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 是针对无用的答案(见悬停文本),而不是当有更好的答案时(见评论)