之前總結過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 = strTemp printVarAddress(strTemp) //-- 0x100525d50 printVarAddress(strTempCopy) //-- 0x1005268a0
由上面打印的變量地址可以看出,每個變量都有自己的存儲地址,也就是對應着OC中的深拷貝。
二、字符串連接
在Swift中字符串的連接就簡單了許多,一個+號搞定,再也不用NSStringFormat了,下面的代碼是在Swift中進行字符串連接所使用的方式,和其他編程語言如PHP等是一樣一樣的。廢話少說直接上代碼。
//=============字符串連接============== var myFirstName = "Li" var mySecondName = "Zelu" var myName = mySecondName + myFirstName println(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 // -- false var boolTwo = myNameTemp != myBlogName // -- true println(boolOne) println(boolTwo)
五、Swift中常見字符串函數
1、使用hasPrefix和hasSuffix來判斷一個字符串是否為另一個字符串的前綴或者后綴
1 //判斷前綴還是后綴 2 var isHasPrefixOrSuffix = "我是lizelu" 3 4 var isPrefix = isHasPrefixOrSuffix.hasPrefix("我") 5 println(isPrefix) // -- ture 6 7 var isSuffix = isHasPrefixOrSuffix.hasSuffix("zelu") 8 println(isSuffix) // -- ture
2.字符串長度
在OC中獲取字符串長度是使用length, 而Swift中則是使用count()全局函數,如下:
//字符串長度 var strLenght = count(isHasPrefixOrSuffix) println(strLenght) // -- 8 --
3.字符串插值
在OC中如果你想往一個字符串中插入一個值的話,那么就得使用字符串的格式化函數了,而在Swift中則使用\()就可以了,具體使用方式如下所示:
1 //字符串插值 2 var insertToStringValue = 1010101 3 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字符串時再做補充。