ÎncepețiÎncepe gratuit

Anularea ultimei acțiuni într-un editor de text

Multe editoare de text permit utilizatorilor să navigheze înapoi prin modificări și să insereze cuvinte lipsă atunci când este necesar. Folosind ListIterator, poți parcurge o listă de acțiuni în sens invers și insera corecții acolo unde este nevoie.

În acest exercițiu, vei parcurge o listă de cuvinte în ordine inversă și, dacă găsești "error", vei insera correction înaintea acestuia, simulând o operațiune de anulare (undo) într-un editor de text.

Acest exercițiu face parte din cursul

Input/Output și Fluxuri în Java

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un obiect ListIterator pentru lista textHistory, pornind de la sfârșit.
  • Verifică dacă mai există elemente anterioare disponibile în lista textHistory.
  • Preia elementul anterior și mută ListIterator înapoi.
  • Inserează noul element correction înaintea elementului error.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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);
    }
}
Editează și rulează codul