美文网首页tom
Swift里的字符串处理

Swift里的字符串处理

作者: Charles_Liu | 来源:发表于2019-10-16 11:48 被阅读0次

    关键字:'substring(with:)' is deprecated: Please use String slicing subscript. 'subscript(_:)' is unavailable: cannot subscript String with an integer range

    在Swift中subString的方法deprecated了怎么办?


    废弃提示

    想要截取字符串有两种方法:

    1.将String转成NSString

    转换乘NSString后就可以使用了substring to:/from:/with:(range)而且返回值为String类型。

    let movie = "当幸福来敲门"
    let subString = (movie as NSString).substring(with: NSMakeRange(2, 3))
    print("截取后的字符串:\(subString)")
    

    2.使用新的字符串处理方法

    let movie = "当幸福来敲门"
    let subString = movie[1..<4]
    print("截取后的字符串:\(subString)")
    

    传入一个Range 区间进行截取,又不行?


    报错了???

    由于截取字符串所用的index range不能像OC那样,所以要还要一步处理才行。

    let movie = "当幸福来敲门"
    let indexStart = movie.startIndex
    let indexTwo = movie.index(indexStart, offsetBy: 1)
    let indexFive = movie.index(indexStart, offsetBy: 3)
    let subString = movie[indexTwo..<indexFive]
    print("截取后的字符串:\(subString)")
    

    处理结果如图:


    处理结果

    相信很多人觉得麻烦,还不如转成NSString简单,一句话就能搞定,
    所以现在还有一种方法就是通过两个Swift方法来处理,可以直接使用Int值来当参数,不需要专门去生成Index、Range。

    let movie = "当幸福来敲门"
    let subString = movie.dropFirst(1).prefix(2)
    print("截取后的字符串:\(subString)")
    

    dropFirst()用来丢弃前面的指定个数的字符来截取字符串,丢弃后prefix()剪切头部制定个数的字符串来获取subString。
    同样也有dropLast和suffix方法,具体使用类似,大家可以自己试试。


    dropLast()
    suffix()

    补充:由于drop方法得到的字符串是substring类型,所以需要转化一下,使用String(movie.dropFirst(1))转化为String即可

    如果帮你解决了问题,点个赞吧🤪

    贴个建站用vps推荐,有需要的可以点一下(⁎⁍̴̛ᴗ⁍̴̛⁎)

    相关文章

      网友评论

        本文标题:Swift里的字符串处理

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