НачатьНачать бесплатно

Отмена последнего действия в текстовом редакторе

Многие текстовые редакторы позволяют пользователям перемещаться назад по истории изменений и вставлять пропущенные слова там, где это необходимо. С помощью 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);
    }
}
Редактировать и запускать код