- Swift 5從零到精通iOS開發訓練營
- 張益琿編著
- 1150字
- 2022-07-27 18:32:07
3.3 字符串類型中的常用方法
Swift語言的String類型中封裝了許多實用的屬性和方法,例如字符串的檢查,字符的追加、插入、刪除操作,字符數的統計等。熟練使用這些屬性與方法能夠使得開發者在編程中處理數據時游刃有余。
前面介紹過,字符串變量的值為空字符串與字符串變量的值為空是兩個不同的概念,String類型的實例通過使用isEmpty方法來判斷字符串的值是否為空字符串,示例如下:
//判斷字符串是否為空 var obj1 = "" if obj1.isEmpty { print("字符串為空字符串") }
還有一種方式也可以用來判斷一個字符串變量是否為空字符串,即當字符串變量中的字符數為0時,也可以認定此字符串為空字符串,即通過字符串的count屬性判斷其中的字符個數是否為0,示例如下:
//獲取字符串中的字符個數,判斷是否為空字符串 if obj1.count == 0 { print("字符串為空字符串") }
String類型的實例除了可以使用“+”直接拼接外,還可以使用比較運算符,示例代碼如下:

在比較兩個字符串的大小時,會逐個對字符的大小進行比較,直至遇到不相等的字符為止。上面的示例代碼可以這樣理解:先比較com1字符串與com2字符串的第1個字符,若相等,再比較第2個字符,以此類推。由于com2的第4個字符(2)大于com1的第4個字符(1),因此com2字符串大于com1字符串。
開發者可以通過下標的方式來訪問字符串中的每一個字符,獲取字符串起始下標與結束下標的方法如下:
var string = "Hello-Swift" //獲取字符串的起始下標String.index類型 var startIndex = string.startIndex //獲取字符串的結束下標 String.index類型 var endIndex = string.endIndex
這里需要注意,startIndex和endIndex獲取到的值為Index類型,并不是整數類型,它們不能直接進行加減運算,需要使用相應的方法進行下標的移動操作,示例如下:
//獲取某個下標后一個下標對應的字符 char="e" var char = string[string.index(after: startIndex)] //獲取某個下標前一個下標對應的字符 char2 = "t" var char2 = string[string.index(before: string.endIndex)]
上面的代碼中,index(after:)方法用來獲取當前下標的后一位下標,index(before:)方法用來獲取當前下標的前一位下標。也可以通過傳入下標范圍的方式來截取字符串中的某個子串,示例如下:
//通過范圍獲取字符串中的一個子串 Hello var subString = string[startIndex...string.index(startIndex, offsetBy: 4)] var subString2 = string[string.index(endIndex, offsetBy: -5)..<endIndex]
上面的示例代碼中,“…”為范圍運算符,在后面的章節中會詳細介紹,offsetBy參數傳入的是下標移動的位數,若向其中傳入正數,則下標向后移動相應位數,若向其中傳入負數,下標向前移動相應位數。使用這種方式來截取字符串十分方便。String類型中還封裝了一些方法,可以幫助開發者便捷地對字符串進行追加、插入、替換、刪除等操作,示例如下:

下面的方法可以方便地完成字符串的大小寫轉換:
var string2 = "My name is Jaki" //全部轉換為大寫 string2 = string2.uppercased() //結果為"MY NAME IS JAKI" //全部轉換為小寫 string2 = string2.lowercased() //結果為"my name is jaki"
下面的方法可以用來檢查字符串的前綴和后綴:
//檢查字符串是否有My前綴 string2.hasPrefix("My") //檢查字符串是否有jaki后綴 string2.hasSuffix("jaki")
溫馨提示:本章介紹了許多String類型中封裝的方法,熟練運用這些方法可以極大地提高開發者的編程效率,本章后面會為讀者準備豐富的練習題,盡可能多地實踐練習是掌握一門編程語言語法的不二法門。
- Instant Node Package Manager
- Mastering Android Development with Kotlin
- Clojure Reactive Programming
- Microsoft Azure Storage Essentials
- Go語言精進之路:從新手到高手的編程思想、方法和技巧(2)
- Flowable流程引擎實戰
- 一步一步跟我學Scratch3.0案例
- Java Hibernate Cookbook
- Python 3快速入門與實戰
- Data Manipulation with R(Second Edition)
- Head First Kotlin程序設計
- Apache Solr for Indexing Data
- Tkinter GUI Application Development Blueprints
- 軟件測試
- Delphi Cookbook