Thay thế chuỗi con
Thuộc phần Logic và luồng thực thi trong hành trình Swift của Coddy. Bài học 5 trên 56.
replacingOccurrences(of:with:) trả về một chuỗi mới, trong đó mọi chuỗi con khớp đều được thay bằng một chuỗi con khác:
let phone = "555-123-4567"
let digits = phone.replacingOccurrences(of: "-", with: "")
print(digits) // "5551234567"Giống như các phương thức đổi kiểu chữ hoa, chữ thường, phương thức này trả về một String mới; chuỗi ban đầu vẫn nguyên vẹn. Hãy gọi nối tiếp các phương thức khi bạn cần xóa nhiều mẫu:
let messy = " 555-123 4567 "
let clean = messy
.replacingOccurrences(of: "-", with: "")
.replacingOccurrences(of: " ", with: "")
print(clean) // "5551234567"Hai lần thay thế nghĩa là có hai lượt xử lý chuỗi. Với code cần tối ưu hiệu năng trên chuỗi rất dài, hãy ưu tiên dùng một lượt filter để xử lý các ký tự; còn với công việc hằng ngày, bạn có thể dùng các lần thay thế nối tiếp vì cách này dễ đọc.
Thử thách
Người mớiĐọc một dòng đầu vào. Coi đó là một câu và tạo một slug phù hợp với URL bằng cách:
- Chuyển đầu vào thành chữ thường
- Thay mỗi dấu cách bằng
- - Xóa mọi ký tự
!,?và.
In slug thu được.
Với đầu vào Hello World!, đầu ra là hello-world. Với Is Swift Fun?, đầu ra là is-swift-fun.
Tự làm thử
let line = readLine()!
// TODO: chuyển thành chữ thường, thay dấu cách bằng dấu gạch nối, bỏ các ký tự ! ? .
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