窺探Swift之字串(String)

來源:互聯網
上載者:User

標籤:

  之前總結過Objective-C中的字串《Objective-C精選字串處理方法》,學習一門新語言怎麼能少的了字串呢。Swift中的String和Objective-C語言中NSString還是區別不小的,Swift中的String又迴歸了正常狀態,使用起來更為方便快捷。本篇部落格的主題就是Swift中的字串類型String,String在Swift中讓人省心了不少。今天這篇部落格就好好的認識一下Swift中的String。

  一、字串拷貝

    在Swift中的字串拷貝直接可以使用=號來操作,這個等號不是指標之間的賦值這麼簡單。如果將字串A的值賦給字串B,那麼A和B的的記憶體位址是不同的,也就是字串A和字串B有各自的記憶體空間。下面的執行個體就給我們展示了上面的說法:

    1.首先寫個輸入函數,該函數用於輸出字串的記憶體位址,代碼如下:

 

1 //列印變數地址的函數2 func printVarAddress(tempString: String){3     4     var address = String(format: "%p", tempString)5     6     println(address)7     8 }

 

 

    2. 建立一個字串變數並賦上初始值,然後再定義一個變數,把上一個變數的值通過=號來賦值給這個新的變數,並調用上面的方法來列印這兩個變數的記憶體位址,如下代碼所示:

var strTemp = "Ludashi"var strTempCopy = strTempprintVarAddress(strTemp)  //-- 0x100525d50printVarAddress(strTempCopy) //-- 0x1005268a0

    由上面列印的變數地址可以看出,每個變數都有自己的儲存地址,也就是對應著OC中的深拷貝。

 

  二、字串串連

    在Swift中字串的串連就簡單了許多,一個+號搞定,再也不用NSStringFormat了,下面的代碼是在Swift中進行字串串連所使用的方式,和其他程式設計語言如PHP等是一樣一樣的。廢話少說直接上代碼。

//=============字串串連==============var myFirstName = "Li"var mySecondName = "Zelu"var myName = mySecondName + myFirstNameprintln(myName) // -- ZeluLi

 

  三、字串遍曆

    在Swift中的字串是可以使用for - in 來直接進行遍曆的,如下所示:

//==============字串遍曆==========var searchString = "Ludashi"for tempChar in searchString {    println(tempChar)}

 

  四、字串的比較

    字Swift中的字串間的比較不是使用isEqualToString方法,直接使用==和!=號就可以搞定,是不是瞬間簡單了不少呢。應注意的是,在Swift中的Bool類型的值不再是OC中的Yes Or No了,而是false Or ture了。下面的程式碼片段是對兩個字串通過==和!=來進行比較的。

//字串比較==與!=var myNameTemp = "lizelu"var myBlogName = "ludashi"var boolOne = myNameTemp == myBlogName  // -- falsevar boolTwo = myNameTemp != myBlogName  // -- trueprintln(boolOne)println(boolTwo)

 

  五、Swift中常見字串函數

    1、使用hasPrefix和hasSuffix來判斷一個字串是否為另一個字串的首碼或者尾碼

1 //判斷首碼還是尾碼2 var isHasPrefixOrSuffix = "我是lizelu"3 4 var isPrefix =  isHasPrefixOrSuffix.hasPrefix("我")5 println(isPrefix)   // -- ture6 7 var isSuffix =  isHasPrefixOrSuffix.hasSuffix("zelu")8 println(isSuffix)   // -- ture

 

    2.字串長度

    在OC中擷取字串長度是使用length, 而Swift中則是使用count()全域函數,如下:

//字串長度var strLenght = count(isHasPrefixOrSuffix)println(strLenght)  // -- 8 --

 

    3.字串插值

    在OC中如果你想往一個字串中插入一個值的話,那麼就得使用字串的格式化函數了,而在OC中則使用\()就可以了,具體使用方式如下所示:

1 //字串插值2 var insertToStringValue = 10101013 4 var strInserReaultValue = "二進位編碼\(insertToStringValue)"5 6 println(strInserReaultValue)  //二進位編碼1010101

 

    4.調用NSString方法

    在Swift中如果想調用NSString所特有的方法時,該怎麼辦呢?那麼就使用as關鍵字來轉換一下類型吧,就是把String類型通過as操作,轉換成NSString類型,然後在調用NSString相應的方法(比如要擷取一個字串指定範圍內的字串時,使用NSString的方法就會更為簡單一些)。

1 //String轉成NSSting調用NSSting的方法2 var stringToNSString = "SwiftWithMe"3 4 var strNs: NSString = "aaa"5 6 strNs.length  // -- 3 --7 8 //就可以掉喲過NSSting的各工種方法了9 var strLength = (stringToNSString as NSString).length  // -- 11 --

  今天有關Swift字串的東西就先到這兒,以後字啊使用Swift做開發執行個體時,用到Swift字串時再做補充。

窺探Swift之字串(String)

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.