美文网首页
swift-String

swift-String

作者: g_h_j | 来源:发表于2020-06-11 16:22 被阅读0次

extension String{

//子串

    func subStringFromIndex(_index:Int)->String?{

        if valideIndex(index) {

            let idx =self.index(startIndex, offsetBy: index)

            let str =String(self[idx...])

            return str

        }

        return nil

    }

//子串

    func subStringToIndex(_index:Int)->String?{

        ifvalideIndex(index) {

            letidx =self.index(startIndex, offsetBy: index)

            letstr =String(self[..<idx])

            returnstr

        }

        returnnil

    }

//子串

    func subStringWith(startIdx:Int,endIdx:Int)->String?{

        if valideIndex(startIdx)&&

           valideIndex(endIdx)&&

           startIdx<=endIdx {

            let idx1 =self.index(startIndex, offsetBy: startIdx)

            let idx2 =self.index(startIndex, offsetBy: endIdx)

            let str =String(self[idx1..<idx2])

            return str

        }

        return nil

    }

//插入字符串

    mutating func insertWith(str:String,atIndex:Int){

        //空串或索引位置不在0...count之间

        if str.isEmpty||

           atIndex<startIndex.utf16Offset(in:self)||

           atIndex>endIndex.utf16Offset(in:self)  {

        }else{

            self.insert(contentsOf: str, at:self.index(self.startIndex, offsetBy: atIndex))

        }

    }

//删除字符

    mutating func removeCharacter(at:Int)->Character?{

     if at < startIndex.utf16Offset(in:self) ||

           at>=endIndex.utf16Offset(in:self){

            returnnil

        }else{

            let c =self.remove(at:self.index(self.startIndex, offsetBy: at))

            return c

        }

    }

//删除字符串

    mutating func removeSubStr(startIdx:Int, endIdx:Int)->String?{

        if valideIndex(startIdx)&&

           valideIndex(endIdx)&&

           startIdx<=endIdx{

            let sIndex =self.index(startIndex, offsetBy: startIdx)

            let eIndex =self.index(startIndex, offsetBy: endIdx)

            let subStr =self.subStringWith(startIdx: startIdx, endIdx: endIdx)

            let range = sIndex..<eIndex

            self.removeSubrange(range)

            return subStr

        }else{

            returnnil

        }

    }

    func valideIndex(_index:Int)->Bool{

        if index<startIndex.utf16Offset(in:self) ||

           index>endIndex.utf16Offset(in:self){

            return false

        }else{

            return true

        }

    }

}

相关文章

  • swift-String

    extension String{ //子串 funcsubStringFromIndex(_index:In...

  • Swift-String Extension

    字符串转数值 资源来自网络和日常整理,持续更新

  • Swift-String常用功能

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

网友评论

      本文标题:swift-String

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