一·字符串和字符
特点:1. 兼容Unicode 2.与OC的NSString相关联,可使用NSString类方法
字符串字面量
单行 let str = "Guangzhou"
多行 let qua = """
生活就像海洋,只有意志坚强的人才能叨叨的到达彼岸
生活就像__ , 只有————————————
"""
初始化空字符串
var a = ""
var b = String()
a => b b=>a
字符串类型
字符串是值类型,常量、变量赋值操作,或在函数/方法中传递时,会进行值拷贝,实际的复制只发生在绝对必要的情况下,这意味着你将字符串作为值类型的同时可以获得极高的性能
这是写在官网上的,我拿来用一下。
字符串索引
startIndex endIndex属性
注意:Swift的字符串索引不能以Int值作为下标Index,可以使用独有的获取下标的方法。
let a = "Guten Tag!"
a[a.startIndex] = G
a[a.Index(before:a.endIndex)] = !
结束字符下标endIndex :g 之前before
a[a.Index(after:a.startIndex)] = u
开始字符下标startIndex:G 之后after
同样的数组越界会报错
indices属性
for index in greeting.indices {
print("(greeting[index]) ", terminator: "")
}
// 打印输出“G u t e n T a g ! ”
字符串插入和删除
var welcome = "hello"
welcome.insert("!", at: welcome.endIndex)
在结束字符串插入一个!
let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex
welcome.removeSubrange(range)
// welcome 现在等于 "hello" 删除一个区间内的字符串range
range是从字符串的结束,向左偏移6个位置的字符world!
子字符串
let a = "Hello, world!"
let index = a.firstIndex(of: ",") ?? a.endIndex
let b = a[..<index]
// beginning 的值为 "Hello"
// 把结果转化为 String 以便长期存储。
let newString = String(b)