★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10260347.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
本文将演示快速计算字符串中的各种数学表达式。
Gihub项目:【DDMathParser】
下载并解压该项目。将文件夹【MathParser】算术解析包,拖动到自己的项目中。
点击【Finish】完成文件拖动。
在导入的项目中,【MathParser】->【Info.plist】信息列表上鼠标右键
->【Delete】->【Move to Trash】,删除该配置文件,只保留该文件夹中的代码文件。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
现在开始编写代码,演示快速计算字符串中的数学表达式。
1 import UIKit 2 3 class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 9 //添加一个异常捕捉语句 10 do 11 { 12 //字符串计算方法,求和 13 let value = try "1+2".evaluate() 14 //控制台输出计算的结果 15 print("1+2 = (value)") 16 17 //初始化一个算术表达式 18 let expression = try Expression(string: "1+2*3/4-5") 19 //创建一个计算器对象 20 let evaluator: Evaluator = Evaluator() 21 //通过调用计算器对象的计算命令,计算字符串中的算术表达式 22 let value2 = try evaluator.evaluate(expression) 23 //在控制台输出算术表达式计算的结果。 24 print("1+2*3/4-5 = (value2)") 25 26 //幂运算 27 let value3 = try "1 + 2⁽³⁺¹⁻²⁾".evaluate() 28 //控制台输出计算的结果 29 print("1 + 2⁽³⁺¹⁻²⁾ = (value3)") 30 31 //识别特殊数学符号,如½ 32 let value4 = try "12 * ½".evaluate() 33 //控制台输出计算的结果 34 print("12 * ½ = (value4)") 35 } 36 catch 37 { 38 print("Something went wrong :(") 39 } 40 } 41 42 override func didReceiveMemoryWarning() { 43 super.didReceiveMemoryWarning() 44 // Dispose of any resources that can be recreated. 45 } 46 }