字符串由N个字符连接而成,用String类型表示,可以包含任意字符,在一对双引号之内。
初始化字符串
(1)字面量赋值
let str = "this is a string"
var tempString = "this is a string"
(2)通过创建String实例的方式初始化字符串
let anotherString = String()
上面的代码初始化了一个空字符串,那么判断字符串是否为空可以用isEmpty来判断,isEmpty是String的一个属性。
let anotherString = String()
if anotherString.isEmpty {
print("这是个空字符串")
}
字符串的基本操作
我们经常用到的字符串的操作包括获取长度、遍历、拼接、插值、和格式字符串。下面分别介绍这几种操作。
(1)获取字符串长度
字符串的长度有两种形式:一种是字符串中字节的个数lengthOfBytes,另一种是直接计算字符的个数。
let string = "Hello World!"
let length1 = string.lengthOfBytes(using:String.Encoding.utf8)
let length1 = string.characters.count
如果是英文字符串,那么获取的字节个数和字符个数是一样的,因为每个英文字母是一个字节。如果是中文字符串,每个中文占用3个字符。字符串长度通常是字符的个数,所以推荐大家使用字符串的characters属性的count属性来计算字符串长度。
(2)字符串的遍历
字符串的遍历很简单,可以用for-in来遍历字符串中的每一个字符。
遍历字符串
(3)拼接字符串和字符
使用加法赋值运算符连接字符串
var varString = "jian"
varString += "shu"
print(varString)
使用加法运算符拼接字符串
let string1 = "Hello"
let string2 = "World"
var string3 = string1 + string2
使用append方法追加字符串
使用append方法可以将一个字符追加到一个可变字符串的尾部。
let string1 = "Hello"
let string2 = "World"
var string3 = string1 + string2
let c:Character = "!"
string3.append(c)
(4)字符串插值
let multiplier = 3
let message = "\(multiplier)诚意2.5等于\(Double(multiplier)*2.5)"
(5)格式字符串format
let hour = 3
let minute = 4
let seconds = 9
let dateString1 = String(format: "%02d:%02d:%02d", arguments:[hour, minute, seconds])
let dateString2 = String(format: "%02d:%02d:%02d",hour,minute,seconds)
(6)字符串截取
使用as关键字将string当做NSString类型的对象使用,然后调用substring(with range:NSRange)方法,进行截取。
let string = "Hello World!"
let subString = (string as NSString).substring(with:NSMakeRange(1,5))
(7)字符串比较
使用“==”或者“!=”判断两个字符串是否相同
let emptyStr1 = ""
let emptyStr2 = String()
if emptyStr1 == emptyStr2 {
print("相同")
} else {
print("不相同")
}
比较字符串的前缀或后缀
使用hasPrefix和hasSuffix两个方法用来检查字符串是否拥有特定的前缀和后缀。
let docFolder = ["java.docx", "swift.docx", "miao.png","OC.docx"]
var docCount = 0
for doc in docFolder {
if doc.hasSuffix(".docx") {
docCount += 1
}
}
print(docCount)