Swift4.0 學習筆記 第七節:字符串String

//
//  ViewController.swift
//  010-字符串
//
//  Created by 莊壯勇 on 2018/1/3.
//  Copyright © 2018年 Personal. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        demo4()
    }

    // 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. String 的3.0 方法
        // 偶爾使用很方便,但是複雜的截取,不好理解,而且語法經常變化!知道就好
        //let r = 0..<5
        //str.substring(with: <#T##Range<String.Index>#>)
        //Index
        // startIndex position == 0
        print(str.startIndex)
        // endIndex position == 6
        print(str.endIndex)
       
        let s2 = str.substring(from: "我們".endIndex)
        print(s2)
       
        // 取子字符串的範圍
        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)
       
    }
   
    // MARK: - 字符串拼接
    func demo2() {
        let name = "老王"
        let age = 18
        let title: String? = "BOSS"
        let point = CGPoint(x: 100, y: 200)
       
        // \(變量/常量)
        // 拼接字符串需要注意 可選項 Optional
        // NSStringFromCGPoint(point)
        let str = "\(name) \(age) \(title ?? "") \(point)"
        print(str)
    }
   
    // MARK: - 字符串的長度
    func demo1() {
        let str = "hello world你好"
        // 1>返回指定編碼的對應的字節數量
        // UTF8的編碼 (0~4個),每個漢字是3個字節
        print(str.lengthOfBytes(using: .utf8))
       
        // 2>字符串長度 - 返回字符的個數 (推薦使用)
        print(str.characters.count)
       
        // 3> 使用NSString 中轉
        /**
             str as NSString
        
         swift 中可以使用'值 as 類型' 類型轉換
         */
       
        let ocStr = str as NSString
        print(ocStr.length)
       
    }
   
    //MARK: - 字符串的遍歷
    func demo() {
       
        // NSString 不支持以下方式遍歷
        let str = "我要飛得更高"
       
        for c in str.characters {
            print(c)
        }
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章