ComenzarEmpieza gratis

Deshacer la última acción en un editor de texto

Muchos editores de texto permiten retroceder por los cambios e insertar palabras que faltan cuando sea necesario. Con ListIterator, puedes moverte hacia atrás por una lista de acciones e insertar correcciones donde haga falta.

En este ejercicio, recorrerás una lista de palabras en orden inverso y, si encuentras "error", insertarás correction antes, simulando una operación de deshacer en un editor de texto.

Este ejercicio forma parte del curso

Entrada/Salida y Streams en Java

Ver curso

Instrucciones del ejercicio

  • Crea un objeto ListIterator para la lista textHistory, empezando desde el final.
  • Comprueba si hay más elementos anteriores disponibles en la lista textHistory.
  • Recupera el elemento anterior y mueve el ListIterator hacia atrás
  • Inserta el nuevo elemento correction antes del elemento error

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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);
    }
}
Editar y ejecutar código