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
Instrucciones del ejercicio
- Crea un objeto
ListIteratorpara la listatextHistory, empezando desde el final. - Comprueba si hay más elementos anteriores disponibles en la lista
textHistory. - Recupera el elemento anterior y mueve el
ListIteratorhacia atrás - Inserta el nuevo elemento
correctionantes del elementoerror
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);
}
}