前瞻:
Swift为苹果在2014年WWDC苹果开发者大会上新发布的语言,截止现在已更新到5.3版本
Swift与OC在写法上的主要区别:
1.swift对于字符串、集合等不再区别定义可变与不可变,统一用let:表示常量、不可变;var表示变量、可变
2.swift在代码后缀可不添加;
3.swift在调用函数方法时放弃了[],转而使用点语法或者函数名()
言归正传,现在开始学习字符串
字符串:String
1.常用定义字符串:
(1)`let string:String = "hello"` 或者 `let string = "hello"`
解析: let 代表该字符串为不可变字符串,类名可跟后缀":String",直接声明该类是字符串String,也可不后缀类名,系统会根据你赋值直接判断该类属于字符串
(2)`var string:String = "hello"` 或者 `var string = "hello"`
解析:var 代表该字符串为可变字符串
(3)`let string = String(format: "%@", "hello")`或者 `let str = "\(string) world"`
2.可变与不可变字符串通用的方法
(1)获取字符串长度:
string.count
(2)判断字符串为空:
string.isEmpty:(当字符串为nil时,调用该方法会崩溃,需要在判断为空的地方增加"||string == nil")
(3)截取字符串:
1. let index1 = string.index(string.startIndex, offsetBy: 3)
let str = string[index1] 代表获取下标为3的字符
2. let str = string.prefix(2) 代表截取前两个字符串、
3. let str = string.suffix(2) 代表截取后两个字符串、
4. let index1 = string.index(string.startIndex, offsetBy: 3)
let str = string[string.startIndex..<index1] 代表截取前3个字符串
5. let index1 = string.index(string.startIndex, offsetBy: 3)
let index2 = string.index(string.startIndex, offsetBy: 6)
let str = string[index1..<index2] 代表截取下标3-6的字符串
(4)判断两个字符串是否相同:
str1 == str2
(5)遍历字符串(后面会详解遍历):
for index in string.indices {
print(string[index])
}
3.可变字符串独有方法
(1)删除字符串
1. string.remove(at: 2) 代表删除下标为2的字符串
2. let index1 = string.index(string.startIndex, offsetBy: 3)
let index2 = string.index(string.startIndex, offsetBy: 6)
string.removeSubrange(index1..<index2) 代表删除下标3-6的字符串
(2)插入字符串
1. string.insert(contentsOf: "world", at: string.endIndex) 代表字字符串末尾插入一段字符串
2. string.insert("3", at: string.endIndex) 代表在字符串末尾插入一个字符
(3)拼接字符串
string.append("world")或 string + "world" 代表拼接一个"world"字符串