Annuler la dernière action dans un éditeur de texte
Beaucoup d'éditeurs de texte permettent de revenir en arrière dans les modifications et d'insérer des mots manquants au besoin. Avec ListIterator, vous pouvez parcourir une liste d'actions à rebours et insérer des corrections au bon endroit.
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.
Cette activité fait partie du cours
Entrées/sorties et flux en Java
Instructions de l’exercice
- Créez un objet
ListIteratorpour la listetextHistory, en partant de la fin. - Vérifiez s'il reste des éléments précédents 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 ce code d’exemple.
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);
}
}