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.
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:
- Số từ sau khi tách bằng
, - 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 - 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
greenTự 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
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
1Chuỗi chuyên sâu
Đếm và chỉ sốChữ hoa, chữ thường và xóa khoảng trắngTìm kiếm trong chuỗiTách và nối chuỗiThay thế chuỗi conÔn tập: Kiểm tra tên người dùng4Tập hợp
Tạo tập hợpPhép hợp và phép giaoPhép trừ và hiệu đối xứngTập con và tập hợp conÔn tập: Bộ lọc thẻ7Dự án: Theo dõi thói quen
Tổng quan dự ánĐánh dấu hoàn thành10Dự án: bộ máy trắc nghiệm
Tổng quan dự ánĐặt câu hỏiTự luyện tập: Playground Swift