美文网首页ios专题
十、Swift3.0之字符串长度、拼接、格式化及子串

十、Swift3.0之字符串长度、拼接、格式化及子串

作者: ZhengYaWei | 来源:发表于2017-02-23 00:00 被阅读88次

    遍历。

        func demo() {
            let str: String = "abcdefg"
            //NSString不支持一下方式遍历
            //let str: NSString = "abcdefg"
            for c in str.characters{
                print(c)
            }
        }
    

    字符串长度

        func demo() {
            let str: String = "abcd你好"
            //1、返回制定编码对应的字节数量   每个汉字是三个字节 4+3+3 = 9
            print(str.lengthOfBytes(using: .utf8))
            //2、字符串长度   推荐使用
            print(str.characters.count)
            //3、使用NSString中转获取长度   as表示强转为NSString类型
            let ocStr = str as NSString
            print(ocStr.length)
        }
    

    拼接字符串.

        func demo2() {
            let name = "老王"
            let age = 18
            let title: String? = "BOSS"
            let point = CGPoint(x: 100, y: 200)
            //拼接字符串时要注意可选项,如果含可选项会输出Optional
            let str = "\(name)\(age)\(title ?? "")\(point)"
            print(str)
        }
    

    格式化字符串

        func demo() {
            let h = 8
            let m = 9
            let s = 6
            //格式化字符串
            let dataStr1 = String(format: "%02d:%02d:%02d",h,m,s)
            print(dataStr1)
        }
    

    字符串的子串。
    关于字符串子串这一块,强烈建议通过NSString作为中转。Swift关于子串处理一直在优化,目前非常不稳定。

    func demo() {
            //建议:一般使用NSString作为中转,因为Swift取子串的方法一直在优化,一直没有稳定
            let str = "我是郑亚伟"
             //==================方法一====================
            //转为OC的NSString
            let ocStr = str as NSString
            let s1 = ocStr.substring(with: NSMakeRange(2, 3))
            print(s1)
            //==================方法二(知道即可)====================
            //Swift3.0的写法
            //startIndex的position == 0
            print(str.startIndex)
            //endIndex的position == str.length
            print(str.endIndex)
            
            //*****取子串
            //这里面的“我是”和上面的我是,完全没有关系,这里主要是为了计算位置的
            let s2 = str.substring(from: "我是".endIndex)
            print(s2)
            
            //****取范围  这个range是可选的,可能没有值
            guard let range = str.range(of: "abc")else{
                print("没有找到字符串")
                return
            }
            //guard let之后的range一定是有值的
            print(range)
            print(str.substring(with: range))
            
        }
    

    相关文章

      网友评论

        本文标题:十、Swift3.0之字符串长度、拼接、格式化及子串

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