字符串与字符
多行字符串字面量、字符串插值、Unicode 正确、Substring 切片
字符串与字符
Swift 字符串正确处理 Unicode——每个 Character 是一个扩展字位簇(可能由多个 Unicode 标量组成)。
学完本章你将: 掌握多行字符串、插值、Substring 切片。
基本操作
swift
let s = "Hello, Swift!"
s.count // 13
s.isEmpty // false
s.uppercased() // "HELLO, SWIFT!"
s.lowercased() // "hello, swift!"
s.hasPrefix("He") // true
s.hasSuffix("!") // true
s.contains("Swift") // true
字符串插值与多行
swift
let name = "小明"
let greeting = "Hello, \(name)!" // "Hello, 小明!"
// 多行字符串 """
let poem = """
这是第一行
这是第二行
"引号不需要转义"
"""
Substring —— 切片不拷贝
swift
let str = "Hello, World"
let index = str.firstIndex(of: ",") ?? str.endIndex
let hello = str[..<index] // "Hello"——Substring 类型
let world = str[str.index(after: index)...] // " World"
// Substring 共享原字符串的内存——高效
// 长期存储时转为 String
let permanent = String(hello)