CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Créez un objet ListIterator pour la liste textHistory, 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 ListIterator vers l'arrière
  • Insérez le nouvel élément correction avant l'élément error

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);
    }
}
Modifier et exécuter le code