Comece agoraComece grátis

Desfazer a última ação em um editor de texto

Muitos editores de texto permitem que você navegue para trás nas alterações e insira palavras que ficaram faltando quando necessário. Com ListIterator, você pode percorrer uma lista de ações de trás para frente e inserir correções onde for preciso.

Neste exercício, você vai percorrer uma lista de palavras em ordem inversa e, se encontrar "error", vai inserir correction antes dela, simulando uma operação de desfazer em um editor de texto.

Este exercicio faz parte do curso

Entrada/Saída e Streams em Java

Ver curso

Instruções do exercicio

  • Crie um objeto ListIterator para a lista textHistory, começando pelo final.
  • Verifique se há mais elementos anteriores disponíveis na lista textHistory.
  • Recupere o elemento anterior e mova o ListIterator para trás
  • Insira o novo elemento correction antes do elemento error

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

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 e Executar Código