微笑永不打烊

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

字符串

  • 字符串的长度
  • 字符串的拼接
  • 字符串的格式化
  • 字符串的子串

 

  • String是一个结构体,性能更高
  1.  String目前具有了绝大多数NSString的功能
  2.  String支持直接遍历
  • NSString是一个OC对象,性能略差

// MARK: - 字符串的子串

    func demo4() {

        

        // 建议:一般使用 NSString作为中转,因为Swift取子串的方法一直在优化

        //更容易理解

        let str = "我们一起去飞"

        

        // 1. NSString

        let ocStr = str as NSString

        let s1 = ocStr.substring(with: NSMakeRange(2, 3))

        print(s1)

        

        // 2.String3.0方法 知道就好

        // 偶尔使用很方便,但是复杂的截取,不好理解,而且语法经常变化

//        let r = 0..<5

//        str.substring(with: <#T##Range<String.Index>#>)

        //Index

        //startIndex position == 0

        print(str.startIndex)

        // endIndex postion = str.length

        print(str.endIndex)

        

        let s2 = str.substring(from: "我们".endIndex)

        print(s2)

        

        let s3 = str.substring(from: "abc".endIndex)

        print(s3)

        

        // 取子字符串的范围

        guard let range = str.range(of: "一起") else {

            print("没有找到字符串")

            return

        }

        //一定找到的范围

        print("------")

        print(range)

        print(str.substring(with: range))

        

    }

    

    

    // MARK: - 格式化

    func demo3() {

        let h = 8

        let m = 9

        let s = 6

        

        let dateStr = "\(h):\(m):\(s)"

        print(dateStr)

        

        // 使用格式字符串格式化

        let dateStr1 = String(format: "%02d:%02d:%02d", h, m, s)

        print(dateStr1)

 

    }

//字符串的长度(3种方法)

    func demo1() {

        let str = "hello world你好"

        // 1>返回指定编码的对应的字节数量

        //URF8的编码(0~4个),每个汉字是3个字节

        print(str.lengthOfBytes(using: .utf8))

        

        // 2>字符串长度- 返回字符的个数《推荐使用》

        print(str.characters.count)

        

        // 3>使用NSString中转

        /**

         str as NSString

         

         OC的写法(CZTabelCell *)[tableView dequeue

         Swift 中可以使用 as 类型类型转换

         */

        let ocStr = str as NSString

        

        print(ocStr.length)

        

    }

    

    

    // MARK: -字符串的遍历

    func demo() {

        // NNString不支持以下方式遍历

        let  str: String = "hello"

        for c in str.characters {

            print(c)

        }

        

    }

  

posted on 2016-11-12 14:25  微笑永不打烊  阅读(253)  评论(0编辑  收藏  举报