[Swift通天遁地]5、高級擴展-(14)擴展String快速計算字符串中的各類數學表達式

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-cwvpcslp-kz.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

目錄:[Swift]通天遁地Swiftgit

本文將演示快速計算字符串中的各類數學表達式。github

Gihub項目:【DDMathParser】express

下載並解壓該項目。將文件夾【MathParser】算術解析包,拖動到本身的項目中。swift

點擊【Finish】完成文件拖動。微信

在導入的項目中,【MathParser】->【Info.plist】信息列表上鼠標右鍵ide

->【Delete】->【Move to Trash】,刪除該配置文件,只保留該文件夾中的代碼文件。post

在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】lua

如今開始編寫代碼,演示快速計算字符串中的數學表達式。spa

 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 }
相關文章
相關標籤/搜索