Anularea ultimei acțiuni într-un editor de text
Multe editoare de text permit utilizatorilor să navigheze înapoi prin modificări și să insereze cuvinte lipsă atunci când este necesar. Folosind ListIterator, poți parcurge o listă de acțiuni în sens invers și insera corecții acolo unde este nevoie.
În acest exercițiu, vei parcurge o listă de cuvinte în ordine inversă și, dacă găsești "error", vei insera correction înaintea acestuia, simulând o operațiune de anulare (undo) într-un editor de text.
Acest exercițiu face parte din cursul
Input/Output și Fluxuri în Java
Instrucțiuni pentru exercițiu
- Creează un obiect
ListIteratorpentru listatextHistory, pornind de la sfârșit. - Verifică dacă mai există elemente anterioare disponibile în lista
textHistory. - Preia elementul anterior și mută
ListIteratorînapoi. - Inserează noul element
correctionînaintea elementuluierror.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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);
}
}