Swift4 字符串截取-超級簡單用法


先介紹一下Swift String 自身的方法,后面介紹簡單的使用方法

1、截取前面5個字符

let substr = string.prefix(5)

 

2、截取后面5個字符

let substr = string.suffix(5)

 

3、獲取下標 N 到 M 的字符(0 <= N < M <= string.count)

// let string = "12345678" 

let indexN = string.index(str.startIndex, offsetBy: n)
let indexM = string.index(str.startIndex, offsetBy: m)
let substr = string[indexN..<indexM]

// 當 n = 1, m = 3 ;  substr = "23"

 

下面介紹String截取的簡單使用方式,需要使用extension來實現

先看看效果

let str = "1234567890"

let str1 = str[6]    // 獲取某一個下標的字符串
print(str1)  // 7

let str2 = str[2..<6]   // 獲取下標 n到m的字符串 0 <= n < m <= str.count
print(str2)    // 3456

let str3 = str[2,6]     // 獲取下標n 長度len 的字符串 
print(str3)    // 345678

let str4 = str.substring(to: 5)   //從 0 到 n個 ,也就是前面n個字符
print(str4)    // 12345

let str5 = str.substring(from: 5) // 從 n 到 尾
print(str5)    // 67890

 

這樣用是不是非常方便呢,下面看看實現extension

// MARK: - 字符串截取
extension String {
    /// String使用下標截取字符串
    /// string[index] 例如:"abcdefg"[3] // c
    subscript (i:Int)->String{
        let startIndex = self.index(self.startIndex, offsetBy: i)
        let endIndex = self.index(startIndex, offsetBy: 1)
        return String(self[startIndex..<endIndex])
    }
    /// String使用下標截取字符串
    /// string[index..<index] 例如:"abcdefg"[3..<4] // d
    subscript (r: Range<Int>) -> String {
        get {
            let startIndex = self.index(self.startIndex, offsetBy: r.lowerBound)
            let endIndex = self.index(self.startIndex, offsetBy: r.upperBound)
            return String(self[startIndex..<endIndex])
        }
    }
    /// String使用下標截取字符串
    /// string[index,length] 例如:"abcdefg"[3,2] // de
    subscript (index:Int , length:Int) -> String {
        get {
            let startIndex = self.index(self.startIndex, offsetBy: index)
            let endIndex = self.index(startIndex, offsetBy: length)
            return String(self[startIndex..<endIndex])
        }
    }
    // 截取 從頭到i位置
    func substring(to:Int) -> String{
        return self[0..<to]
    }
    // 截取 從i到尾部
    func substring(from:Int) -> String{
        return self[from..<self.count]
    }
    
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM