在oc語言中,NSString來申明一個字符串脆粥。
在swift語言中软棺,用String來申明一個字符串红竭,學習過java的也應該知道。
字符(character)
在這里喘落,需要說明一點的就是茵宪,字符串中有字符(Character)這個概念,一串字符串是由多個字符組成瘦棋。
let str = "Hello" ? ? ?這個字符串就是由"H","e","l","l","o"5個字符構成的字符串稀火。
獲取字符串的長度的方法
str.characters.count
不能通過索引來獲取某一個字符
str[0] 或者str.characters[0] 這樣的寫法是錯誤的。
索引(Index)
那么赌朋,要如何去獲取某一個字符凰狞。在這里篇裁,有個概念,要想獲取一個字符赡若,那么要先獲取索引(Index),然后再通過索引獲取字符
let startIndex = str.startIndex ?//獲取第一個索引达布。類型為Index
let endIndex = str.endIndex //獲取最后一個索引
let Index = startIndex.advancedBy(5) //獲取從0開始,第5個索引位置
let Index2 = Index.predecessor() ?//獲取當前索引前一個索引
let Index3 = Index.successor() //獲取當前索引后一個索引
值得一提的就是逾冬,獲取的索引注意是否越界黍聂。
字符串增刪改查操作
增
str.appendContentsOf("!!!") //在字符串最后添加字符串
str.insert("?", atIndex: str.startIndex) //給定字符串一個索引位置,就可以添加一個字符到這個索引位置上身腻。注意:只能添加一個字符
刪
str.removeAtIndex(str
str.removeAtIndex(str.endIndex.predecessor()) //刪除給定的索引的字符(只能刪除一個字符)
str.removeRange(str.endIndex.advancedBy(-2)..<str.endIndex) ?//通過區(qū)間方法产还,可以同時刪除區(qū)間所在的所有字符
str.removeAll() ?//刪除所有字符
改
let range = startIndex..<spaceIndex.predecessor()
str.replaceRange(range, with: "Hi") ?//通過這樣的方法,使得range這段字符被“Hi”給替換掉
查
let a = str[str.startIndex] //獲取第一個字符
let b = str[str.endIndex] //獲取最后一個字符
let c = str[str.startIndex.advancedBy(5)] //獲取第5個字符
let d = str[str.startIndex.advancedBy(5).predecessor()] //獲取第4個字符
let f? = str[str.startIndex.advancedBy(5).successor()] //獲取第6個字符
Character(字符)和Unicode
str.characters ?//字符串所有字符
如果let mark = "!" 申明嘀趟,系統(tǒng)默認將mark作為字符串類型處理脐区,其實這個mark嚴格來說是個字符。
字符串之間的可以通過“+”來進行字符串的合并
//在swift語言中去件,下列這些字符都是當作一個Character字符
let englishLetter:Character = "a"
let chineseLetter:Character = "雷"
let smile:Character = "??"
let coolGuy:Character = "\u{1F60E}"http://Unicode碼
在swift中坡椒,可以更精確的來判斷字符串長度扰路,不會受中文尤溜,Unicode影響,相比于OC的NSString來說汗唱,顯得更加實用宫莱。
字符串的一些操作
//uppercaseString,字符串全部轉成大寫
str.uppercaseString
//lowercaseString哩罪,字符串全部轉成小寫
str.lowercaseString
//capitalizedString授霸,每一句字符串首字母轉成大寫
str.capitalizedString
//containsString,判斷傳入的字符串是否被str包含
str.containsString("Hello")
//hasPrefix际插,判斷傳入的字符串是否含有str的前綴
str.hasPrefix("Hello")
//hasSuffix碘耳,判斷傳入的字符串是否含有str的后綴
str.hasSuffix("ft")
字符串的缺點:
let s = "one third is \(1.0/3.0)" 這段代碼就是算出1/3,結果的浮點數(shù)沒法去指定保留小數(shù)點后幾位框弛。
所以辛辨,引進了as這個關鍵字,用來強制類型轉化瑟枫。
as
我們可以利用NSString的方法來處理小數(shù)點問題斗搞,然后再強轉成String類型
let s2 = NSString(format: "one third is %.2f", 1.0/3.0) as String
NSString
總結:String字符串需要注意的就是獲取字符(Character)需要通過索引(Index),在String不好處理的一些邏輯慷妙,可以通過NSString來處理再as強轉僻焚,