字符串就是一系列字符
在swift中,Sring類型橋接到OC的NSString類,不需要做格式轉(zhuǎn)換就可以訪問(wèn)所有NSString的方法字支。不同的是String在swift中本質(zhì)是結(jié)構(gòu)體,而OC中NSString是對(duì)象。
一梨撞、聲明字符串
量聲明
let str1 = "hello" // 不可變字符串
var str2 = "world" // 可變字符串
var str3 = "" // 空字符串
var str4 = String() // 空字符串
// swift中多行字符串,用的是""" ..................""", 多行字符串可以使用單引號(hào)和雙引號(hào)香罐,必須要用 \ 轉(zhuǎn)義字符
swift中字符串結(jié)構(gòu)體卧波,或者是一種值類型,因此
let rst = str2 + str2 // 結(jié)果是? "hello world".? 這樣做字符串拼接真的比OC省事很多
二庇茫、字符串操作
1 .遍歷 字符串中的字符
for char in "hello" {
print(char)
// 依次打印出 h - e - l - l - o
2. 用Character 類型 初始化字符串
let chars: [Character] = ["h", "e", "l", "l", "o"]
let charsStr = String(chars) // charsStr 結(jié)果為: hello
3 字符串拼接
let str1 = "hello"?
var str2 = "world" // 可變字符串
let rst = str2 + str2 // 結(jié)果是? "hello world".? 這樣做字符串拼接真的比OC省事很多
4 插入
let myInt = 4
let myStr = "\(myInt) -----------Double(myInt) * 1.1" // 結(jié)果: 4?-----------4.4
注意:作為插值寫(xiě)在()中的表達(dá)式不能包含非轉(zhuǎn)義字符的"或\,并且不能包辦回車或者換行符港粱。
5. 統(tǒng)計(jì)?
mystr = "message"
let cnt = mystr.count? ?// 與OC中l(wèi)ength 差不多
6. 字符串訪問(wèn)
索引(下標(biāo))訪問(wèn):每個(gè)String類型都是String.Index,他相當(dāng)于每個(gè)字符在字符串中的位置
startIndex、endIndex表示字符的開(kāi)始旦签、結(jié)束位置查坪,當(dāng)字符串為空,這兩個(gè)值是一樣的宁炫。
還有:index(before:)偿曙、index(after:)、index(_:offsetBy:)
let greeting = "Guten Tag!"
greeting[greeting.startIndex] // G
greeting[greeting.index(before: greeting.endIndex)] // !
greeting[greeting.index(after: greeting.startIndex)] // u
let index = greeting.index(greeting.startIndex, offsetBy: 7) 9 greeting[index] // a
greeting[greeting.endIndex] // 錯(cuò)誤羔巢,因?yàn)樵浇缌?/p>
greeting.index(after: endIndex) // 錯(cuò)誤望忆, 因?yàn)樵浇缌?/p>
// 使用:indices 可以方位字符串的每個(gè)索引
for index in greeting.indices{
print("\(greeting[index]) ", terminator: "")
}
// 輸出: G u t e n T a g !
注意:這些方法在集合類型也是使用,Array朵纷、Dictionary炭臭、Set等
7、 插入袍辞、刪除
要在字符串中插入值使用insert(_:at:) 或 insert(contentsOf:at:)鞋仍, 對(duì)應(yīng)的刪除方法有:remove(at:)或removeSubrange(_:)
var welcome = "hello"?
?welcome.insert("!", at: welcome.endIndex)?
?// welcome 的值 "hello!"?
welcome.insert(contentsOf: " there", at: welcome.index(before 6? : welcome.endIndex))
// welcome 的值 "hello there!"?
welcome.remove(at: welcome.index(before: welcome.endIndex)) //??hello?there
let range = welcome.index(welcome.endIndex, offsetBy: -6)..< welcome.endIndex
welcome.removeSubrange(range) //?hello
8 子字符串
let greeting = "Hello, world!"
let index = greeting.index(of: ",") ?? greeting.endIndex
let beginning = greeting[..<index]
let newString = String(beginning)
9 字符串對(duì)比可以直接使用"==", 其他方法可以參考OC的NSString的方法??
以什么開(kāi)始:hasPrefix(_:)
以什么結(jié)束:hasSuffix(_:)