Zacznij terazZacznij za darmo

Cofanie ostatniej akcji w edytorze tekstu

Wiele edytorów tekstu umożliwia cofanie się przez kolejne zmiany i wstawianie brakujących słów w razie potrzeby. Dzięki ListIterator możesz przechodzić przez listę akcji wstecz i wprowadzać poprawki w odpowiednich miejscach.

W tym ćwiczeniu przejdziesz przez listę słów w odwrotnej kolejności i jeśli natrafisz na "error", wstawisz correction przed tym elementem – symulując w ten sposób operację cofania w edytorze tekstu.

To ćwiczenie jest częścią kursu

Wejście/wyjście i strumienie w Javie

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz obiekt ListIterator dla listy textHistory, zaczynając od jej końca.
  • Sprawdź, czy na liście textHistory są dostępne poprzednie elementy.
  • Pobierz poprzedni element i przesuń ListIterator wstecz.
  • Wstaw nowy element correction przed elementem error.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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);
    }
}
Edytuj i uruchom kod