字符
在Swift中,字符是字符串的基本组成单位,隶属于Character类型。字符可以是一个字母、数字、汉字或者符号,并使用双引号包裹住,例如“A” "1" "中" “*”等。字符定义的基本格式如下所示。
let/var 名称:Character = "值"
let ch:Character = "A"
常见的转义字符
\t 水平制表符
\n 换行
\r 回车
\" 双引号
\' 单引号
\\ 反斜线
字符串
在Swift中,字符串是由N个字符连接而成的,字符串使用String类型表示,可以包含任意字符,并且这些字符必须包含在一对双引号之内。
初始化字符串
1.通过字面量赋值的方式初始化字符串
let tempString = "this is a temp string"
2.通过创建String实例的方式初始化字符串
let anotherString = String()
String类提供了一个isEmpty属性,用于判断字符串是否为空。
if anotherString.isEmpty{
print("啥也没有")
}
字符串的基本操作
1.获取字符串的长度
第一种是调用lengthOfBytes方法,该方法用于获取字符串中字节的个数;另一种是直接计算字符的个数
import UIKit
let string = "HelloWorld"
let len1 = string.lengthOfBytes(using:Sting.Encoding.utf8)
print(len1)
let len2 = string.characters.count
printf(len2)
2.字符串的遍历
let string = "Hello World!"
for c in string.charcters{
print(c)
}
3.连接字符串和字符
(1)使用加法赋值运算符连接字符串
通过使用加法赋值运算符(+=),可以将一个字符串连接到某个已经存在的可变字符串的末尾位置。
var varString = "hello,"
varString += "world"
print(varString)
(2)使用加法运算符拼接字符串
除了加法赋值运算符之外,还可以使用加法运算符(+)将两个或多个字符串相加在一起,创建一个新的字符串。
let string1 = "hello"
let string2 = "world"
var string3 = string1 + string2
print(string3)
(3)通过append方法追加字符串
通过调用append方法,将一个字符附加到一个可变字符串的尾部。
let character:Character = "!"
string3.append(character)
print(string3)
4.字符串插值
字符串插值是一种构建新字符串的方式,可以在其中包含常量、变量、字面量和表达式,插入的字符串字面量的每一项都在以反斜线为前缀的小括号中。
let multiplier = 3
// 将multiplier插入到字符串中
let message = "\(multiplier)乘以2.5等于\(Double(multiplier)*2.5)"
print(message)
需要注意的是,插值字符串中写在括号中的表达式不能包含非转义反斜杠(\)、回车符或换行符。
5.格式字符串
import UIKit
let hour = 8
let minute = 5
let seconds = 6
// 按照format的格式来显示arguments的内容
let dateString = String(format:"%02d:%02d:%02d",arguments:[hour,minute,seconds])
print(dateString)
// 按照format的格式拼接hour、minute、seconds的内容
let dateString2 = String(format:"%02d:%02d:%02d",hour,minute,seconds)
print(dateString2)
第6行调用的构造函数需要传入两个参数,format表示拼接字符串的格式,arguments表示用于拼接的内容;第10行调用的构造函数与第6行类似,只是第2个参数无须按照数组的形式传递,而是直接使用逗号将内容逐个添加到后面即可。
6.字符串的截取
import UIKit
let string = "HelloWorld"
// 将string转换为OC的字符串使用,并根据范围来截取子串
let subString = (string as NSString).substring(with:NSMakeRange(1,5))
print(subString)
7.字符串的比较
(1)比较字符或者字符串是否相等
比较字符或者字符串可以使用等于操作符(==)和不等于操作符。
(2)比较字符串的前缀和后缀
Swift提供了hasPrefix和hasSuffix两个方法,用来检查字符串是否拥有特定的前缀和后缀。
比较String和NSString
(1)String是一个结构体类型,而NSString是一个集成自NSObject基类的对象。
(2)两者都可以使用自己的类名直接进行初始化,从表面上看写法相同,但是NSString的意思是初始化了一个指针指向了这个字符串,但是String是把字符串的字面量赋值给常量和变量。