Menu
CoddyTech

拆分与连接

本课属于 Coddy Swift 学习旅程的“逻辑与流程”单元。第 4 课,共 56 课。

处理分隔文本的两种常用工具。它们都来自已经导入的 Foundation。

components(separatedBy:) 会根据你传入的分隔符将字符串拆分成一个 String 数组:

let csv = "red,green,blue"
let parts = csv.components(separatedBy: ",")
print(parts)                       // ["red", "green", "blue"]

对应的反向操作是对任意 [String] 使用 joined(separator:):

let words = ["swift", "is", "fun"]
let line = words.joined(separator: " ")
print(line)                        // "swift is fun"

你经常会把这些操作组合起来:拆分,用 map 转换,再重新拼接。对 [String] 使用 map 的结果仍然是 [String],所以可以直接使用 joined。

challenge icon

挑战

简单

读取一行输入:一个以逗号分隔的单词列表。

打印三行:

  1. 按 , 拆分后的单词数量
  2. 将这些单词重新连接,并用 > (空格、大于号、空格)分隔,转换为大写
  3. 列表中最长的单词(拆分后)。如果两个单词长度相同,则使用先出现的那个。

对于输入 red,green,blue,输出为:

3
RED > GREEN > BLUE
green

亲手试试

let line = readLine()!
let words = line.components(separatedBy: ",")

// TODO:输出单词数量、用 " > " 连接的大写单词,以及第一个最长的单词
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Swift 在线编辑器