Swift 快速入門(字符串)

在 Swift 中絕大多數(shù)的情況下,推薦使用 String 類型
  • String 是一個(gè)結(jié)構(gòu)體,性能更高
  • String 目前具有了絕大多數(shù) NSString 的功能
  • String 支持直接遍歷
  • NSString 是一個(gè) OC 對(duì)象,性能略差
  • Swift 提供了 String 和 NSString 之間的無(wú)縫轉(zhuǎn)換
遍歷字符串中的字符

for s in str.characters { print(s) }

字符串長(zhǎng)度

// 返回以字節(jié)為單位的字符串長(zhǎng)度,一個(gè)中文占 3 個(gè)字節(jié) let len1 = str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) // 返回實(shí)際字符的個(gè)數(shù) let len2 = str.characters.count // 返回 utf8 編碼長(zhǎng)度 let len3 = str.utf8.count

字符串拼接
  • 直接在 "" 中使用 (變量名) 的方式可以快速拼接字符串
    let str1 = "Hello" let str2 = "World" let i = 32 str = "\(i) 個(gè) " + str1 + " " + str2 //告別 stringWithFormat
可選項(xiàng)的拼接
  • 如果變量是可選項(xiàng),拼接的結(jié)果中會(huì)有 Optional
  • 為了應(yīng)對(duì)強(qiáng)行解包存在的風(fēng)險(xiǎn),蘋果提供了 ?? 操作符
    ?? 操作符用于檢測(cè)可選項(xiàng)是否為 nil
    如果不是 nil,使用當(dāng)前值
    如果是 nil,使用后面的值替代
    let str1 = "Hello" let str2 = "World" let i: Int? = 32 str = "\(i ?? 0) 個(gè) " + str1 + " " + str2
格式化字符串
  • 在實(shí)際開發(fā)中,如果需要指定字符串格式,可以使用 String(format:...) 的方式
    let h = 88 let m = 66 let s = 55 let timeString = String(format: "%02d:%02d:%02d", arguments: [h, m, s]) let timeStr = String(format: "%02d:%02d:%02d", h, m, s)
String & Range 的結(jié)合
  • Swift 中,StringRange連用時(shí),語(yǔ)法結(jié)構(gòu)比較復(fù)雜
  • 如果不習(xí)慣 Swift 的語(yǔ)法,可以將字符串轉(zhuǎn)換成 NSString 再處理
    let helloString = "歡迎來(lái)到簡(jiǎn)書" (helloString as NSString).substringWithRange(NSMakeRange(2, 3))
  • 使用 Range 的寫法
    let startIndex = helloString.startIndex.advancedBy(0) let endIndex = helloString.endIndex.advancedBy(-1) helloString.substringWithRange(startIndex..<endIndex)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容