Скасування останньої дії в текстовому редакторі
Багато текстових редакторів дозволяють переходити назад через внесені зміни й за потреби вставляти пропущені слова. Використовуючи ListIterator, ви можете рухатися назад списком дій і вставляти виправлення там, де це потрібно.
У цій вправі ви пройдете список слів у зворотному порядку, і якщо знайдете «error», вставите correction перед ним, імітуючи операцію скасування в текстовому редакторі.
Ця вправа є частиною курсу
Ввід/вивід і потоки в Java
Інструкції до вправи
- Створіть об'єкт
ListIteratorдля спискуtextHistory, починаючи з кінця. - Перевірте, чи доступні попередні елементи у списку
textHistory. - Отримайте попередній елемент і пересуньте
ListIteratorназад. - Вставте новий елемент
correctionперед елементомerror.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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);
}
}