1. Khởi động (Engagement)
Bài toán tìm kiếm xâu con trong một xâu là một trong những bài toán tin học được ứng dụng nhiều trong thực tế. Công cụ tìm kiếm thông tin trên Internet hay lệnh tìm kiếm trong soạn thảo văn bản được xây dựng trên cơ sở bài toán tìm xâu con.
💡 Câu hỏi suy ngẫm: Cho xâu c = "Trường Sơn" và xâu m = "Bước chân trên dài Trường Sơn". Em hãy cho biết xâu c có là xâu con của xâu m không? Nếu có thì tìm vị trí của xâu c trong xâu m.
Trong bài học này, chúng ta sẽ tìm hiểu các lệnh giúp làm việc hiệu quả với xâu kí tự, bao gồm tìm kiếm xâu con và các phương thức xử lý xâu thông dụng.
2. Hình thành kiến thức (Knowledge)
1. Xâu con và lệnh tìm vị trí xâu con
a) Kiểm tra xâu con với toán tử in
Toán tử in dùng để kiểm tra một xâu có là xâu con của xâu khác không.
Cú pháp:
Ví dụ:
Nếu đúng thì trả lại giá trị True, nếu sai trả lại giá trị False.
b) Lệnh find() tìm vị trí xâu con
Lệnh find() tìm vị trí xuất hiện của một xâu trong xâu khác.
Cú pháp đơn:
Lệnh sẽ tìm vị trí đầu tiên của xâu con trong xâu mẹ và trả về vị trí đó. Nếu không tìm thấy thì trả về -1.
Ví dụ:
Cú pháp đầy đủ:
Lệnh sẽ tìm vị trí xâu con bắt đầu từ vị trí start.
Ví dụ:
2. Một số lệnh thường dùng với xâu kí tự
a) Lệnh split() tách xâu thành danh sách
Lệnh split() tách một xâu thành các từ và đưa vào một danh sách. Kí tự tách dùng để phân tách các từ mặc định là dấu cách, tuy nhiên có thể thay thế kí tự tách bằng kí tự khác.
Cú pháp:
Ví dụ:
b) Lệnh join() nối danh sách thành xâu
Lệnh join() nối danh sách gồm các từ thành một xâu.
Ví dụ:
3. Luyện tập (Practice)
Bài tập thực hành
Bài tập 1:
Biểu thức logic sau là đúng hay sai?
Bài tập 2:
Lệnh sau trả lại giá trị gì?
Bài tập 3:
Cho xâu S, viết đoạn lệnh trích ra xâu con của S bao gồm ba kí tự đầu tiên của S.
Gợi ý:
Bài tập 4:
Viết chương trình kiểm tra xâu S có chứa chữ số không. Thông báo "S có chứa chữ số" hoặc "S không chứa chữ số nào".
Gợi ý:
Thực hành tại máy:
Nhập một xâu kí tự S từ bàn phím rồi kiểm tra xem xâu S có chứa xâu con "10" không.
Cách 1: Duyệt kí tự theo chỉ số
Cách 2: Sử dụng toán tử in
4. Vận dụng (Application)
Bài tập vận dụng
Bài tập 1: Chèn xâu vào giữa
Cho hai xâu s₁, s₂. Viết đoạn chương trình chèn xâu s₁ vào giữa s₂, tại vị trí len(s₂)//2. In kết quả ra màn hình.
Gợi ý:
Bài tập 2: Đếm tên trùng lặp
Viết chương trình nhập số học sinh và họ tên học sinh. Sau đó đếm xem trong danh sách có bao nhiêu bạn tên là "Hương".
Gợi ý: Sử dụng toán tử in để kiểm tra một xâu có là xâu con của một xâu khác.
Chương trình mẫu:
Bài tập 3: Xử lý dữ liệu CSV
Viết chương trình xử lý xâu dữ liệu dạng CSV (cách nhau bởi dấu phẩy):
- Nhập xâu: "Tên, Tuổi, Lớp"
- Tách thành danh sách và in từng phần tử trên dòng riêng
Gợi ý:
Thảo luận:
- Khi nào nên dùng find() thay cho in?
- Lợi ích của split() trong xử lý dữ liệu có cấu trúc?
- Tại sao join() lại quan trọng trong việc tổng hợp dữ liệu?
Ghi nhớ kiến thức 🎯
- ✅ toán tử in kiểm tra xâu con, trả về True/False.
- ✅ find() tìm vị trí xâu con, trả về -1 nếu không tìm thấy.
- ✅ split() tách xâu thành danh sách theo kí tự phân cách.
- ✅ join() nối danh sách xâu thành một xâu duy nhất.
- ✅ Các phương thức giúp xử lý văn bản hiệu quả.