• [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 }
  • 相关阅读:
    K8s 使用 nfs-client-provisioner
    MySQL IF CASE 例子
    Nginx 限速
    Python 元组操作
    Python if, while,for,continue,break,三目运算符
    Centos7 安装 pyenv
    MySQL 查看大事务
    Tomcat 修改日志路径及日志分割
    游戏攻略 美少女万华镜5
    自建远程桌面过程 vnc + frp
  • 原文地址:https://www.cnblogs.com/strengthen/p/10260347.html
Copyright © 2020-2023  润新知