Annuler la dernière action dans un éditeur de texte
De nombreux éditeurs de texte permettent de revenir en arrière dans les modifications et d’insérer des mots manquants si nécessaire. Avec ListIterator, vous pouvez parcourir une liste d’actions à rebours et insérer des corrections là où c’est utile.
Dans cet exercice, vous parcourrez une liste de mots en sens inverse, et si vous trouvez « error », vous insérerez correction avant, pour simuler une opération d’annulation dans un éditeur de texte.
Cet exercice fait partie du cours
Entrées/Sorties et flux en Java
Instructions
- Créez un objet
ListIteratorpour la listetextHistory, en partant de la fin. - Vérifiez s’il y a d’autres éléments précédents disponibles dans la liste
textHistory. - Récupérez l’élément précédent et déplacez le
ListIteratorvers l’arrière - Insérez le nouvel élément
correctionavant l’élémenterror
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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);
}
}