Bắt đầu ngayBắt đầu miễn phí

Hoàn tác thao tác cuối trong trình soạn thảo văn bản

Nhiều trình soạn thảo văn bản cho phép người dùng đi lùi qua các thay đổi và chèn những từ còn thiếu khi cần. Với ListIterator, bạn có thể di chuyển ngược qua danh sách các thao tác và chèn các chỉnh sửa khi cần thiết.

Trong bài này, bạn sẽ duyệt danh sách các từ theo chiều ngược; nếu gặp "error", bạn sẽ chèn correction trước nó, mô phỏng thao tác hoàn tác trong trình soạn thảo văn bản.

Bài tập này là một phần của khóa học

Nhập/Xuất và Streams trong Java

Xem khóa học

Hướng dẫn bài tập

  • Tạo một đối tượng ListIterator cho danh sách textHistory, bắt đầu từ cuối.
  • Kiểm tra xem còn phần tử trước đó nào trong danh sách textHistory hay không.
  • Lấy phần tử trước đó và di chuyển ListIterator lùi lại
  • Chèn phần tử mới correction trước phần tử error

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

public class TextEditorUndo {
    public static void main(String[] args) {
        ArrayList textHistory = new ArrayList<>();
        textHistory.add("Hello");
        textHistory.add("error");
        textHistory.add("world");

        // Create ListIterator starting from the end of the list
        ListIterator it = textHistory.____(textHistory.____());

        // Check if more elements are available in reverse order
        while (____.____()) {
        	// Retrieve previous element
            String word = ____.____();
            if (word.equals("error")) {
                // Insert "correction" before "error"
                ____.____("correction");
            }
        }

        System.out.println(textHistory);
    }
}
Chỉnh sửa và Chạy Mã