IniziaInizia gratis

Annulla l'ultima azione in un editor di testo

Molti editor di testo permettono di scorrere all'indietro tra le modifiche e inserire parole mancanti quando serve. Con ListIterator, puoi muoverti all'indietro in una lista di azioni e inserire correzioni dove necessario.

In questo esercizio, percorrerai una lista di parole in senso inverso e, se trovi "error", inserirai correction prima di essa, simulando un'operazione di annullamento in un editor di testo.

Questo esercizio fa parte del corso

Input/Output e Stream in Java

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un oggetto ListIterator per la lista textHistory, partendo dalla fine.
  • Verifica se sono disponibili altri elementi precedenti nella lista textHistory.
  • Recupera l'elemento precedente e sposta il ListIterator all'indietro
  • Inserisci il nuovo elemento correction prima dell'elemento error

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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);
    }
}
Modifica ed esegui il codice