一、引言
Swift中提供了String類型與Characters類型來處理字符串和字符數據,Swift中的String類型除了提供了許多方便開發者使用的方法外,還可以與Foundation框架的NSString類進行轉換,使用起來十分方便。
二、String基礎
在Swift中,使用雙引號來定義字符串,開發者可以通過如下代碼來創建一個字符串常量:
let str = "Hello, playground"
可以通過下面兩種方式來創建空字符串:
let str1 = ""let str2 = String()
調用isEmpty方法可以判斷某個字符串是否為空字符串,這個方法將返回一個Bool值,可以直接用于if語句:
if str1.isEmpty { print("this String Object is Empty")}
不像Objective-C有NSString與NSMutableString的區別,在Swift中,如果需要創建可變的字符串,只需用變量來接收:
var str3 = "Hello"str3 += " "+"World"//str3 = Hello World
String也可以使用插值的方法來構造新的字符串,使用/()的方式來將插值的表達式寫在小括號內,示例如下:
let multiplier = 3let message = "/(multiplier) times 2.5 is /(Double(multiplier) * 2.5)"//3 times 2.5 is 7.5
獲取字符串的長度使用如下代碼:
str3.characters.count
Swift中的String可以直接使用==運算符來進行比較,示例如下:
let comStr1 = "one two"let comStr2 = "one two"comStr1==comStr2//true
下面示例的代碼,用來檢驗字符串是否包含前綴與后綴:
let tmp3 = "thank you"tmp3.hasPrefix("thank")//truetmp3.hasSuffix("you")//true
三、Character的使用
Character為Swift中的字符類型,在for-in循環中,可以將字符串中所有的字符進行遍歷:
for chara in str3.characters { print(chara)}
也可以創建單獨的字符類型量值,示例如下:
let char1 = ""var cgar2 = "HS"
事實上,Sting字符串也可以通過Character字符數組進行初始化:
let chars:[Character] = ["H","e","l","l","o"]let str4 = String(chars)
向字符串中追加字符使用如下方法:
var str5 = ""let ca:Character = "a"str5.append(ca)
四、字符串中的特殊字符
字符串中的特殊字符主要指轉義字符,Swift中的轉義字符列舉如下:
"/0"//"" 空白符"//"//"/"反斜杠符號"/t"//" "制表符"/n"//換行符"/r"//回車符"/'"//"'"單引號"/""//"""雙引號"/u{24}"//"$"unicode字符
五、關于字符串下標
在Swift中,字符串也可以通過下標的方式來訪問其中字符,并且提供了相關方法來方便的移動下標,示例代碼如下:
let tmp = "Hello Swift"//獲取字符開始的下標值 0let indexStart = tmp.startIndex//獲取某個下標后一個字符的下標 1let next = indexStart.successor()//獲取最后一個字符的下標值 注意有/0的存在 let indexEnd = tmp.endIndex//獲取某個下標前一個字符的下標let pre = indexEnd.predecessor()//通過下標獲取字符串中的字符 tvar c = tmp[pre]//進行下標移動 ovar c2 = tmp[indexStart.advancedBy(4)]//通過遍歷下標來遍歷字符 H e l l o S w i f tfor index in tmp.characters.indices { print("/(tmp[index]) ", terminator: "")}
六、在字符串中插入和移除字符
使用insert函數來向字符串中插入一個字符,示例如下:
var tmp2 = "Hello"tmp2.insert("!", atIndex: tmp2.endIndex)
注意,上面示例代碼中的insert函數只能用于插入一個字符,如果需要插入一組字符,需要使用如下方法:
tmp2.insertContentsOf(" Swift".characters, at: tmp2.endIndex)
使用removeAtIndex函數來移除字符串中的一個字符,示例如下:
tmp2.removeAtIndex(tmp2.endIndex.predecessor())
如果要移除一組字符,主要通過Range來實現,示例如下:
let range = tmp2.endIndex.advancedBy(-4)..<tmp2.endIndextmp2.removeRange(range)
新聞熱點
疑難解答