swift-10字符串

113 阅读2分钟

我以前做的swift笔记, 之前都是整理在onenote上, 最近想到整理出博客. 也方便自己查找, 可以当做自己的一份文档.

字符串的子串

    func demo3() {
        let str = "我们一起飞"
        //1 建议: 一般使用NSString 作为中转 很容易理解
        let ocStr = str as NSString
        let s1 = ocStr.substring(with: NSMakeRange(2, 3))
        print(s1)
        
        //2 String 3.0方法  
        //偶尔使用很方便 但是复杂的截取 不好理解 而且语法经常变化
        //let r = 0..<5
        print(str.startIndex)
        print(str.endIndex)
        
        let s2 = str.substring(from: "我们".endIndex)
        print(s2)
        let s3 = str.substring(from: "123".endIndex)
        print(s3)
        //取子字符串的范围
        guard let range = str.range(of: "一起") else {
            print("没有找到字符串")
            return
        }
        
        print("-----")
        print(range)
        print(str.substring(with: range))
    }

拼接字符串

    func demo2() {
        let name = "老王"
        let age = 18
        let title: String? = nil//= "BOSS"
        let point = CGPoint(x: 100, y: 200)
        
        /*
            oc      NSStringWithFormart:xxx
            swift   \(常量/变量)
                    需要注意可选项 optional
                    NSStringFromCGPoint(point)
         
         */
        let str = "\(name) \(age) \(title) \(point)"
        print(str)
    }
```    

## 字符串长度

func demo1() {        //法一         //返回的是指定编码的对应的字节数量         //utf8 的编码(0~4个) 每个汉字是3个字节         let str = "hello world你好"         print(str.lengthOfBytes(using: .utf8))         //法二         //字符串长度 返回字符串的个数(推荐使用)         print(str.characters.count)         //法三         //使用NSString 中转         /*             str as NSString             oc 的写法 (SGPTableViewCell *) [tableView dequeue             swift 中可以使用 '值 as 类型' 类型转换                    */         let ocStr = str as NSString         print(ocStr.length)     }

    
## 字符串的遍历

func demo() {         //字符串的遍历         // NSString 不支持以下方式遍历         let str: String = "我要飞得更高"         for c in str.characters {             print(c)         }     }