Menu
CoddyTech

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.

challenge icon

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:

  1. Chuyển đầu vào thành chữ thường
  2. Thay mỗi dấu cách bằng -
  3. 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ự ! ? .
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