官术网_书友最值得收藏!

3.3 字符串類型中的常用方法

Swift語言的String類型中封裝了許多實用的屬性和方法。例如,字符串的檢查,字符的追加、插入、刪除操作,字符數(shù)的統(tǒng)計等。熟練使用這些屬性與方法能夠使得開發(fā)者在編程中處理數(shù)據(jù)時游刃有余。

前邊有過介紹,字符串變量的值為空字符串與字符串變量的值為空是兩個不同的概念,String類型的實例通過使用isEmpty方法來判斷字符串的值是否為空字符串,示例如下:

還有一種方式也可以用來判斷一個字符串變量是否為空字符串——當(dāng)字符串變量中的字符數(shù)量為0時認(rèn)定此字符串為空字符串,即判斷characters集合中元素的個數(shù)是否為0,示例如下:

    //獲取字符串中字符個數(shù) 判斷是否為空字符串
    If obj1.characters.count == 0 {
    print("字符串為空字符串")
    }

String類型的實例除了可以使用“+”直接拼接,還可以使用比較運算符,示例代碼如下:

在比較兩個字符串的大小時,會逐個對字符的大小進(jìn)行比較,直至遇到不相等的字符為止。上面的示例代碼可以這樣理解:先比較com1字符串與com2字符串的第1個字符,若相等,再比較第2個字符,以此類推。由于com2的第4個字符(2)大于com1的第4個字符(1),因此com2字符串大于com1字符串。

開發(fā)者可以通過下標(biāo)的方式來訪問字符串中的每一個字符,獲取字符串起始下標(biāo)與結(jié)束下標(biāo)的方法如下:

    var string = "Hello-Swift"
    //獲取字符串起始的下標(biāo)  0
    var startIndex = string.startIndex
    //獲取字符串結(jié)束的下標(biāo)  11
    var endIndex = string.endIndex

這里需要注意,除非為空字符串,否則結(jié)束下標(biāo)的值總會比字符串中最后一個字符的下標(biāo)值大1,如上示例代碼,string字符串中有11個字符,首字符的下標(biāo)為0,則末字符的下標(biāo)為10,但是通過endIndex屬性獲取到的下標(biāo)值為11,所以也可以理解為,endIndex屬性獲取到的是字符串中字符的個數(shù)。另外,startIndex和endIndex獲取到的值為Index類型,并不是整數(shù)類型,不能直接進(jìn)行加減運算,需要使用相應(yīng)的方法進(jìn)行下標(biāo)的移動操作,示例如下:

    //獲取某個下標(biāo)后一個下標(biāo)對應(yīng)的字符 char="e"
    var char = string[string.index(after: startIndex)]
    //獲取某個下標(biāo)前一個下標(biāo)對應(yīng)的字符 char2 = "t"
    var char2 = string[string.index(before: string.endIndex)]

在上面的代碼中,index(after:)方法用來獲取當(dāng)前下標(biāo)的后一位下標(biāo),index(before:)方法用來獲取當(dāng)前下標(biāo)的前一位下標(biāo)。也可以通過傳入下標(biāo)范圍的方式來截取字符串中的某個子串,示例如下:

    //通過范圍獲取字符串中的一個子串 Hello
    var subString = string[startIndex...string.index(startIndex, offsetBy: 4)]
    var subString2 = string[string.index(endIndex, offsetBy: -5)..<endIndex]

上面示例代碼中的“…”為范圍運算符,在后面的運算符章節(jié)會有詳細(xì)的介紹。offsetBy參數(shù)傳入的是下標(biāo)移動的位數(shù),向其中傳入正數(shù)則下標(biāo)向后移動相應(yīng)位數(shù),傳入負(fù)數(shù)則下標(biāo)向前移動相應(yīng)位數(shù)。使用這種方式來截取字符串十分方便。String類型中還封裝了一些方法,可以幫助開發(fā)者便捷地對字符串進(jìn)行追加、插入、替換、刪除等操作,示例如下:

下面的方法可以方便地完成字符串的大小寫轉(zhuǎn)換:

下面的方法可以用來檢查字符串的前綴和后綴:

    //檢查字符串是否有My前綴
    string2.hasPrefix("My")
    //檢查字符串是否有jaki后綴
    string2.hasSuffix("jaki")

提示

這里介紹了許多String類型中封裝的方法,熟練運用這些方法可以極大地提高開發(fā)者的編程效率,后面會為讀者準(zhǔn)備豐富的練習(xí)題,盡可能多地實踐練習(xí)是掌握一門編程語言語法的不二法門。

主站蜘蛛池模板: 增城市| 敦煌市| 荔波县| 石狮市| 丰宁| 台南市| 墨江| 昌都县| 平果县| 昂仁县| 桐柏县| 武夷山市| 兴城市| 崇明县| 和田市| 尼玛县| 浠水县| 华容县| 密山市| 且末县| 青冈县| 云林县| 宜城市| 娱乐| 重庆市| 台中市| 法库县| 义马市| 南宁市| 银川市| 公主岭市| 城固县| 买车| 文成县| 东海县| 林口县| 高邑县| 高尔夫| 浑源县| 鸡东县| 福安市|