Swift-字符串

1、字符串的遍历

  //NSString 不支持一下字符串的遍历

        let str = "我要飞的更高"

        for c in str.characters{

            print(c)

        }

2、字符串的长度

  let str = "hello world你好"

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

        //UTF8的编码(0-4个)每个汉字是3个字节

        print(str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))

        // print(str.lengthOfBytes(using: .utf8)) Switf 3.0

        //2>字符的长度 - 返回字符的个数

        print(str.characters.count)

       //3>使用NSString 中转

        /*

        str as NSString

        OC 的写法 (类型*)对象

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

        */

        let ocStr = str as NSString

        print(ocStr.length)

3、字符串的拼接

    let name = "老王"

         let age = 18

          let title: String? = "BOSS"

        //(变量/常量)(变量/常量)

        //拼接字符串需要注意 可选项Optional

        let str = "(name)(age)(title ?? "")"

        print(str)

4、格式化

    let h = 8

        let m = 9

        let s = 6

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

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

        print(dateStr1)

5、字符串的子串

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

        let str = "我们一起去飞"       

   //1、NSString

        let ocStr = str as NSString

        let s1 = ocStr.substringWithRange(NSMakeRange(2,3))

        print(s1)

  //2、String 的方法

        //let r = 0..<5

        //Swift 2.0

        //str.substringWithRange(<aRange: Range<Index>>)

        //Swift 3.0

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

        

        //startIndex position = 0

        print(str.startIndex)

        //endIndex position = str.length

        print(str.endIndex)

  

  根据给出字符串的长度截取子串

    let s2 = str.substringFromIndex("我们".endIndex)

        print(s2)

        let s3 = str.substringFromIndex("adc".endIndex)

        print(s3)

   //取字符串的范围

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

            print("没找到字符串")

            return

        }

        //一定找到的范围

        print(range)

        print(str.substringWithRange(range))