Xâu được vẽ thành dãy ô kí tự đánh chỉ số từ 0. Chế độ Thao tác: nối xâu, độ dài, lấy kí tự, cắt xâu con [a, b) (không lấy chỉ số b), tìm xâu con, so sánh, đổi chữ hoa/thường, thay thế, tách xâu, mã kí tự; kết quả hiện song song ở mã giả, Python và Java, kể cả lỗi vượt chỉ số. Chế độ Thuật toán chạy từng bước đếm kí tự, đảo xâu, kiểm tra xâu đối xứng, tìm xâu con vét cạn kèm bảng theo dõi. Chế độ cuối so sánh số phép so sánh của tìm kiếm vét cạn và Boyer–Moore.
Bài Xâu kí tự của Tin học 10 (chủ đề Giải quyết vấn đề với sự trợ giúp của máy tính) yêu cầu hiểu xâu là dãy kí tự có chỉ số từ 0, biết lấy độ dài, kí tự, xâu con, tìm kiếm và duyệt xâu bằng vòng lặp. Mô phỏng vẽ xâu thành dãy ô kí tự có chỉ số và cho thấy cắt xâu s[a:b] lấy chỉ số a nhưng không lấy chỉ số b; mọi phép toán đều tạo ra xâu mới vì xâu là bất biến.
Chế độ Thao tác trên xâu có 12 phép: nối, độ dài, lấy kí tự, cắt xâu con, tìm, so sánh bằng, so sánh thứ tự, đổi chữ hoa, chữ thường, thay thế, tách xâu và mã kí tự; kết quả hiện song song ở mã giả, Python và Java, kể cả lỗi khi chỉ số vượt quá độ dài. Chế độ Thuật toán duyệt xâu chạy từng bước bốn chương trình (đếm kí tự, đảo xâu, kiểm tra xâu đối xứng, tìm xâu con vét cạn), tô dòng mã đang chạy và ghi bảng theo dõi. Chế độ cuối chạy song song tìm kiếm vét cạn và Boyer–Moore với quy tắc kí tự xấu rồi đếm số lần so sánh của mỗi cách.
Câu hỏi gợi ý:
– Vì sao s[2:5] chỉ có 3 kí tự?
– Với s = "Hello World", s.find("o") cho kết quả bao nhiêu?
– Vì sao Boyer–Moore cần ít phép so sánh hơn khi mẫu dài?