字符串

字符串

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

 

  • 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)

        }

        

    }

  

转载于:https://www.cnblogs.com/liyanyan/p/6056639.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值