003-Swift3.0之字符串类型
一、空字符串
var emptyString1 = "" var emptyString2 = String() // 判断是否为空 if emptyString1.isEmpty { print("字符串为空") }
二、字符串可变性
1.常量字符串(let声明的字符串)完成赋值之后不可变
2.变量字符串(var声明的字符串)可变
var varString = "hello" varString += ", Frank" let letString = "Highlander" // letString += "Frank" (报错,不可变)
三、字符串的值类型
在Swift中,字符串的赋值和传值都是进行重新拷贝一份,因此它是值类型,仅仅只是拷贝值而已,是独立存在的
四、字符串&字符
1.属性:characters
var string1 = "hello, Frank" for character in string1.characters { print(character) }
2.字符的声明
注意:字符的声明必须显式声明,否则系统会误认为是String类型
let c1: Character = "!" var c2: Character = "h"
3.字符转化为字符串
①通过字符串初始化函数
let character: Character = "s" let characterArray: [Character] = ["F", "r", "a", "n", "k", "c", "o", "m", "e", "o", "n", "!"] let str1 = String(character); // 字符转字符串 let str2 = String(characterArray) // 字符集转字符串
②通过连接运算符
let s1 = "hello" let s2 = "frank" var s3 = s1 + s2 let s4 = "welcome" var s5 = "to huanggang" s5 += s4
③方法append()
let cc: Character = "!" let ss = "HG" var ss1 = "welcome to huanggang" ss1.append(cc) ss1.append(ss)
④任意基本数据类型通过\()转化为字符串
let ccc: Character = "M" let nnn = 27 let mmm = 169.10 let sss = "Frank" let s = "\(ccc)y name is \(sss), I'm \(nnn) years old! My height is \(mmm) cm."
五、字符串的字符数量
let sss1 = "Koala 🐨, Snail 🐌, Penguin 🐧, Dromedary 🐪" let count = sss1.characters.count
六、字符串索引
1.属性:index
注意index区间:[startIndex, endIndex),不可越界
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) greeting[index] // a
2.属性:characters.indices
indices:所有索引的范围集合,里面放的全部都是index
for index in greeting.characters.indices { print("\(greeting[index])", terminator: "") }
七、插入和删除
1.插入
let ch: Character = "!" let str = ", Frank" var welcome1 = "hello" welcome1.insert(ch, at: welcome1.endIndex) welcome1.insert(contentsOf: str.characters, at: welcome1.index(before: welcome1.endIndex))
2.删除
var welcome2 = "hello, frank!" welcome2.remove(at: welcome2.index(before: welcome2.endIndex)) let range = welcome2.index(welcome2.endIndex, offsetBy: -3) ..< welcome2.endIndex welcome2.removeSubrange(range) welcome2.removeAll()
八、比较字符串
Swift提供了三种方式比较文本值:字符串字符相等、前缀相等、后缀相等
1.字符串字符相等
let quotation1 = "we're a lot alike, you and I." let sameQuotation1 = "We're a lot alike, you and I." if quotation1 == sameQuotation1 { print("两个字符串字符相等") } else { print("两个字符串字符不相等") }
2.前缀:hasPrefix()
let quotation2 = "http://www.baidu.com" if quotation2.hasPrefix("http") { print("http请求") }
3.后缀:hasSuffix
let quotation3 = "1058842360@qq.com" if quotation3.hasSuffix("qq.com") { print("QQ邮箱") }

浙公网安备 33010602011771号