美文网首页程序员
Swift - 扩展 String 转换计算字符

Swift - 扩展 String 转换计算字符

作者: 小黑Swift | 来源:发表于2016-04-22 12:17 被阅读80次
简单扩展了下 String 支持转换四则运算的计算字符,若要加入更多支持,可以自己加入扩展。下面的扩展只是把字面上的字符串,简单转化成中缀表达式并且分割成了数组,方便转后缀表达式计算结果。
var str = "{1+2-[(1+2)x2]x2}"
str.ConverCalculateChar()
//str =["(","1","+","2","-","(","(","1","+","2",")","*","2",")","*","2",")"]




extension String {
 
    mutating func ConverCalculateChar() -> [String] {
        var console = true //控制合成连续数字字符
        var SerialNumber = ""
        var strArr = [String]()
        self += "A" //临时帮助下循环正常进行
        for  char in self.characters {
            switch char {
                case "0","1","2","3","4","5","6","7","8","9",".":
                    console == true ? (SerialNumber += String(char)) : (SerialNumber = String(char))
                console = true
            default:
               console = false
               if !SerialNumber.isEmpty {
                strArr.append(SerialNumber)
                SerialNumber = ""
                }
                strArr.append(String(char))
            }
        }
        strArr.removeLast() //删除刚刚的重要临时工"A"
        var index = 0
        for str in strArr {
            switch str {       //设定一定的容错性转换
                case "X", "x", "×":
                strArr[index] = "*"
                case "÷":
                strArr[index] = "/"
                case "(", "{", "[":
                strArr[index] = "("
                case ")", "}", "]":
                strArr[index] = ")"
            default:
                break
            }
           index += 1
        }
        return strArr
    }
}

相关文章

  • Swift - 扩展 String 转换计算字符

    简单扩展了下 String 支持转换四则运算的计算字符,若要加入更多支持,可以自己加入扩展。下面的扩展只是把字面上...

  • Swift中计算字符串的宽高

    // 计算字符串的宽度,高度 letstring:String="swift中计算字符串的宽度和高度。swift中...

  • Swift笔记

    String和Data转换 字符串转Data Data转String Swift字符串的插入, 删除, 替换 Sw...

  • Swift-字典与JSON转换

    Swift中经常会遇到字典和字符串的相互转换,因此可以转换可以封装起来,转换代码如下: Swift字典转字符串扩展...

  • String UIImage实用 extension

    一、String extension,计算字符串长度 String.swift: 使用方法: 其中 testStr...

  • Swift3常用工具类方法

    1.扩展图片 2.扩展颜色 3.扩展字符串 4.计算字符串高度 5.时间转换星期 5.金额单位转换 6.字节单位转换

  • Swift学习_基础语法之字符&字符串

    1.Character 字符类型 2.String 类型 3.计算字符串长度 swift中计算字符串的长度和oc不...

  • swift初学之数字转字符串

    swift中数字转字符串的方式: 一是直接使用String进行转换,示例: a=20 print(...

  • Swift-String常用功能

    一、String与OC字符串转换 Swift中的String使用方法跟OC有很大的不同,先介绍一下String和O...

  • iOS Swift字符串处理

    创建String扩展 源码 针对改变字符串字体样式再计算高度方式,限制最大宽度

网友评论

    本文标题:Swift - 扩展 String 转换计算字符

    本文链接:https://www.haomeiwen.com/subject/bdhxrttx.html