加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift4 'substring(to:)' is deprecated: Pleas

发布时间:2020-12-14 06:04:17 所属栏目:百科 来源:网络整理
导读:解决Swift4 substring deprecated: Please use String slicing subscript with a ‘partial range upto’ operator. extension String { func substring( from : Int?, to : Int?) - String { if let start = from { guard start self. characters . count e

解决Swift4 substring deprecated: Please use String slicing subscript with a ‘partial range upto’ operator.

extension String {
    func substring(from: Int?,to: Int?) -> String {
        if let start = from {
            guard start < self.characters.count else {
 return ""
            }
        }

        if let end = to {
            guard end >= 0 else {
 return ""
            }
        }

        if let start = from,let end = to {
            guard end - start >= 0 else {
 return ""
            }
        }

        let startIndex: String.Index
        if let start = from,start >= 0 {
            startIndex = self.index(self.startIndex,offsetBy: start)
        } else {
            startIndex = self.startIndex
        }

        let endIndex: String.Index
        if let end = to,end >= 0,end < self.characters.count {
            endIndex = self.index(self.startIndex,offsetBy: end + 1)
        } else {
            endIndex = self.endIndex
        }
 return String(self[startIndex ..< endIndex])
    }

    func substring(from: Int) -> String {
 return self.substring(from: from,to: nil)
    }

    func substring(to: Int) -> String {
 return self.substring(from: nil,to: to)
    }

    func substring(from: Int?,length: Int) -> String {
        guard length > 0 else {
 return ""
        }

        let end: Int
        if let start = from,start > 0 {
            end = start + length - 1
        } else {
            end = length - 1
        }
 return self.substring(from: from,to: end)
    }

    func substring(length: Int,to: Int?) -> String {
        guard let end = to,end > 0,length > 0 else {
 return ""
        }

        let start: Int
        if let end = to,end - length > 0 {
            start = end - length + 1
        } else {
            start = 0
        }
 return self.substring(from: start,to: to)
    }
}
let string = "Hello,World!"
string.substring(from: 1,to: 7) print: ello,Wo

string.substring(to: 7) print: Hello,Wo

string.substring(from: 3) print: lo,World!

string.substring(from: 1,length: 4) print: ello

string.substring(length: 4,to: 7) print: o,Wo

Updated substring(from: Int?,length: Int) to support starting from zero.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读