zoukankan      html  css  js  c++  java
  • [Swift通天遁地]五、高级扩展-(14)扩展String快速计算字符串中的各种数学表达式

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/10260347.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    目录:[Swift]通天遁地Swift

    本文将演示快速计算字符串中的各种数学表达式。

    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 }
  • 相关阅读:
    【逆序对相关/数学】【P1966】【NOIP2013D1T2】 火柴排队
    【贪心/DP/单调队列】【CF1029B】Creating the Contest
    【二分】【P1314】 【NOIP2011D2T2】聪明的质监员
    【树形DP】【P1351】 【NOIP2014D1T2】联合权值
    【枚举】 最大子矩阵(I)
    【单调队列】【P2627】 修剪草坪
    【矩阵】矩阵初级
    【计数】【UVA11401】 Triangle Counting
    【计数原理】【UVA11538】 Chess Queen
    【状压DP】【UVA11795】 Mega Man's Mission
  • 原文地址:https://www.cnblogs.com/strengthen/p/10260347.html
Copyright © 2011-2022 走看看