1.初始化空字符串
//1.初始化空字符串
var emptyString = ""
var emptyString2 = String()
//初始化字符
let string = "我是字符串"
//可使用 isEmpty 屬性來判斷一個字符串是否為空
if emptyString.isEmpty {
print("這個字符串沒有裝東西")
}
2.字符串比較损合、前綴、后綴、長度
//2.字符串比較
//兩個字符串是否相等
let string1 = "string1"
let string2 = "string2"
if string1 == string2 {
print("相等")
} else {
print("不相等")
} // -> 不相等
//判斷前綴是否存在
let name = "德瑪西亞之力"
if name.hasPrefix("德瑪") {
print("吖胀瞪,看來是德瑪家族的,不知道是哪個哥們")
}
//判斷后綴是否存在
if name.hasSuffix("之力") {
print("艸,原來是草叢馬")
}
//判斷是否包含字符串
if name.containsString("西亞") {
print("送你去西亞挖油信不信")
}
// 判斷字符串長度
let name2 = "諾克薩斯之手"
let name2Length = name.characters.count // = 6
// 遍歷字符串
for character in name2.characters {
print(character)
} //- 諾 克 薩 斯 之 手
3.字符串拼接 及character 插入凄诞、刪除圆雁、替換
注意: 字符串(String) 與 字符(character)關(guān)系
字符就是單個字符,字符串就是多個字符的集合
//3.字符串拼接
let oldString = "hello!"
let numInt = 66
var newString = oldString + "," + "我來也" + "\(numInt)" // = hello!,我來也66
newString.appendContentsOf("666") //- newString = hello!,我來也66666
//注意: 字符串(String) 與 字符(character)關(guān)系
/////訪問字符串對應(yīng)下標(biāo)的的字符
//String 的下標(biāo)是 String.CharacterView.Index 類型
var gameName = "暗黑王國"
let start = gameName.startIndex // = 0 這里是index類型 不像數(shù)組是Int
let end = gameName.endIndex // = 4
let startCharacter = gameName[start] // = 暗
/*注意 最后一個字符下標(biāo)是 endIndex 前一個位 帆谍,因為下標(biāo)和數(shù)組一樣都是從零開始的伪朽,如果直接endIndex會報錯,因為越界了汛蝙。
不過蘋果提供了兩個方法
predecessor 前進(jìn)一位
successor 后退一位
還有訪問對應(yīng)下標(biāo)的方法 advancedBy
*/
let endCharacter = gameName[gameName.endIndex.predecessor()] // = 國
let secondCharacter = gameName[gameName.startIndex.successor()] // = 黑
let thirdCharacter = gameName[gameName.startIndex.advancedBy(2)] // = 王
//插入 - 指定下標(biāo)插入字符
gameName.insertContentsOf("游戲".characters, at: gameName.endIndex)
//- gameName = 暗黑王國游戲
gameName.insert(startCharacter, atIndex: start)
// - gameName = 暗暗黑王國游戲
//刪除
gameName.removeAtIndex(gameName.startIndex)
// - gameName = 暗黑王國游戲
gameName.removeRange(gameName.startIndex..<gameName.startIndex.advancedBy(2))
// - gameName = 王國游戲
//替換
gameName.replaceRange(gameName.startIndex..<gameName.startIndex.advancedBy(2), with: "暗黑帝國")
// - gameName = 暗黑帝國游戲
//強(qiáng)行一換一節(jié)奏
//可以強(qiáng)行把Int烈涮、Float、Double窖剑、Character等類型轉(zhuǎn)換成字符串
let char:Character = "6" // - 字符類型
let joinString = String(char) // - 字符串類型
let num = 66
let num2 = 666
let newString3 = String(num) + "\(num2)" + "\(char)" // = 666666
4.字符串判斷是否會有字母及大小寫判斷與轉(zhuǎn)換
//檢查字符串中的字符是否是小寫
let words = "Name"
let interval = "a"..."z"
print(interval)
for c in words.characters {
if !interval.contains(String(c)) {
print("\(c)不是小寫字母")
}
} // print -> N不是小寫字母
let str = "Welcome to the world"
let uppercase = str.uppercaseString // = "WELCOME TO THE WORLD"
let lowercase = str.lowercaseString // = "welcome to the world"
//判斷是否包含字母
let myName = "小哥Job"
for char in myName.utf8 {
if (char > 64 && char < 91) || (char > 96 && char < 123) {
print("字符串中包含字母")
}
}
5.字符串字面量的特殊符號
// 字符串字面量的特殊符號
/*字符串字面量可以包含以下特殊字符:
轉(zhuǎn)移特殊字符 \0 (空字符)坚洽、\\(反斜線)、\t (水平制表符)西土、\n (換行符)讶舰、
\r (回車符)、\" (雙引號)需了、\' (單引號)跳昼。
單字節(jié) Unicode 標(biāo)量,寫成 \xnn肋乍,其中 nn 為兩位十六進(jìn)制數(shù)鹅颊。
雙字節(jié) Unicode 標(biāo)量,寫成 \unnnn墓造,其中 nnnn 為四位十六進(jìn)制數(shù)堪伍。
四字節(jié) Unicode 標(biāo)量,寫成 \Unnnnnnnn觅闽,其中 nnnnnnnn 為八位十六進(jìn)制數(shù)杠娱。
*/
let quotes = "\"我是王者,誰與爭鋒\" - 無名" // = "我是王者谱煤,誰與爭鋒" - 無名
let dollarSign = "\u{24}" // $, Unicode 標(biāo)量 U+0024
let blackHeart = "\u{24}" // ?, Unicode 標(biāo)量 U+2665
let sparklingHeart = "\u{24}" // ??, Unicode 標(biāo)量 U+1F496
String功能擴(kuò)展:http://www.reibang.com/p/765f181b9a2f