Отмена последнего действия в текстовом редакторе
Многие текстовые редакторы позволяют пользователям перемещаться назад по истории изменений и вставлять пропущенные слова там, где это необходимо. С помощью ListIterator можно двигаться по списку действий в обратном направлении и вставлять исправления в нужных местах.
В этом упражнении вы пройдёте по списку слов в обратном порядке и, обнаружив слово "error", вставите correction перед ним — тем самым имитируя операцию отмены в текстовом редакторе.
Это упражнение является частью курса
Ввод/вывод и потоки в Java
Инструкции к упражнению
- Создайте объект
ListIteratorдля спискаtextHistory, начиная с конца. - Проверьте, есть ли ещё предыдущие элементы в списке
textHistory. - Получите предыдущий элемент и переместите
ListIteratorназад. - Вставьте новый элемент
correctionперед элементомerror.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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);
}
}