텍스트 편집기에서 마지막 동작 실행 취소
많은 텍스트 편집기는 사용자가 변경 사항을 거꾸로 탐색하고 필요한 경우 누락된 단어를 삽입할 수 있게 해요. ListIterator를 사용하면 동작 목록을 뒤로 이동하면서 필요한 곳에 수정 내용을 삽입할 수 있습니다.
이 연습 문제에서는 단어 목록을 역순으로 순회하면서 "error"를 찾으면 그 앞에 correction을 삽입해, 텍스트 편집기에서 실행 취소를 수행하는 것처럼 동작을 구현해 보겠습니다.
이 연습은 강의의 일부입니다
Java의 입력/출력과 스트림
연습 안내
- 끝에서 시작하여
textHistory목록용ListIterator객체를 생성하세요. textHistory목록에 이전 요소가 더 있는지 확인하세요.- 이전 요소를 가져오고
ListIterator를 뒤로 이동하세요. - 요소
error앞에 새 요소correction을 삽입하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
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);
}
}