Kom igångKom igång gratis

Ångra senaste åtgärd i en textredigerare

Många textredigerare låter användare navigera bakåt genom ändringar och infoga saknade ord vid behov. Med ListIterator kan du röra dig bakåt genom en lista med åtgärder och infoga korrigeringar där det behövs.

I den här övningen går du igenom en lista med ord i omvänd ordning. Om du hittar "error" infogar du correction före det, vilket simulerar en ångra-åtgärd i en textredigerare.

Den här övningen är en del av kursen

Input/Output och strömmar i Java

Visa kurs

Övningsinstruktioner

  • Skapa ett ListIterator-objekt för listan textHistory, med start från slutet.
  • Kontrollera om det finns fler föregående element i listan textHistory.
  • Hämta föregående element och flytta ListIterator bakåt.
  • Infoga det nya elementet correction före elementet error.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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);
    }
}
Redigera och kör kod