Cofanie ostatniej akcji w edytorze tekstu
Wiele edytorów tekstu umożliwia cofanie się przez kolejne zmiany i wstawianie brakujących słów w razie potrzeby. Dzięki ListIterator możesz przechodzić przez listę akcji wstecz i wprowadzać poprawki w odpowiednich miejscach.
W tym ćwiczeniu przejdziesz przez listę słów w odwrotnej kolejności i jeśli natrafisz na "error", wstawisz correction przed tym elementem – symulując w ten sposób operację cofania w edytorze tekstu.
To ćwiczenie jest częścią kursu
Wejście/wyjście i strumienie w Javie
Instrukcje do ćwiczenia
- Utwórz obiekt
ListIteratordla listytextHistory, zaczynając od jej końca. - Sprawdź, czy na liście
textHistorysą dostępne poprzednie elementy. - Pobierz poprzedni element i przesuń
ListIteratorwstecz. - Wstaw nowy element
correctionprzed elementemerror.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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);
}
}