Menu
CoddyTech

Tách và nối chuỗi

Thuộc phần Logic và luồng thực thi trong hành trình Swift của Coddy. Bài học 4 trên 56.

Hai công cụ thường dùng để xử lý văn bản được phân tách bằng dấu phân cách. Cả hai đều thuộc Foundation, thư viện đã được nhập sẵn.

components(separatedBy:) tách một chuỗi thành một mảng các giá trị String tại dấu phân cách mà bạn truyền vào:

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

Phép ngược lại là joined(separator:) trên mọi [String]:

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

Bạn thường kết hợp chúng: tách ra, biến đổi bằng map, rồi ghép lại. Kết quả của map trên một [String] vẫn là [String], nên joined dùng trực tiếp được.

challenge icon

Thử thách

Dễ

Đọc một dòng đầu vào: danh sách các từ được phân tách bằng dấu phẩy.

In ra ba dòng:

  1. Số từ sau khi tách bằng ,
  2. Các từ được nối lại bằng > (dấu cách, dấu lớn hơn, dấu cách), ở dạng chữ hoa
  3. Từ dài nhất trong danh sách (sau khi tách). Nếu hai từ dài bằng nhau, dùng từ xuất hiện đầu tiên.

Với đầu vào red,green,blue, đầu ra là:

3
RED > GREEN > BLUE
green

Tự làm thử

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

// TODO: in ra số lượng, các từ viết hoa nối bằng " > ", rồi từ dài nhất xuất hiện đầu tiên
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng thực thi

Tự luyện tập: Playground Swift