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
Hướng dẫn bài tập
- Tạo một đối tượng
ListIteratorcho danh sáchtextHistory, bắt đầu từ cuối. - Kiểm tra xem còn phần tử trước đó nào trong danh sách
textHistoryhay không. - Lấy phần tử trước đó và di chuyển
ListIteratorlùi lại - Chèn phần tử mới
correctiontrướ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);
}
}