替换子字符串
本课属于 Coddy Swift 学习旅程的“逻辑与流程”单元。第 5 课,共 56 课。
replacingOccurrences(of:with:) 会返回一个新字符串,其中每个匹配的子字符串都会被另一个子字符串替换:
let phone = "555-123-4567"
let digits = phone.replacingOccurrences(of: "-", with: "")
print(digits) // "5551234567"和大小写转换方法一样,它会返回一个新的 String,原字符串不会改变。如果需要移除多个模式,可以链式调用:
let messy = " 555-123 4567 "
let clean = messy
.replacingOccurrences(of: "-", with: "")
.replacingOccurrences(of: " ", with: "")
print(clean) // "5551234567"两次替换意味着要遍历字符串两次。对于处理超长字符串且对性能敏感的代码,最好只遍历一次字符,使用 filter;日常开发中,链式替换也很合适,而且读起来清晰。
挑战
入门读取一行输入。将其视为一个句子,并按以下步骤生成适合用作 URL 的slug:
- 将输入转换为小写
- 将每个空格替换为
- - 删除所有
!、?和.字符
打印生成的 slug。
对于输入 Hello World!,输出为 hello-world。对于 Is Swift Fun?,输出为 is-swift-fun。
亲手试试
let line = readLine()!
// TODO:转为小写字母,将空格替换为连字符,删除 ! ? . 字符
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Swift 在线编辑器