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
Istruzioni dell'esercizio
- Crea un oggetto
ListIteratorper la listatextHistory, partendo dalla fine. - Verifica se sono disponibili altri elementi precedenti nella lista
textHistory. - Recupera l'elemento precedente e sposta il
ListIteratorall'indietro - Inserisci il nuovo elemento
correctionprima dell'elementoerror
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);
}
}