เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เลิกทำการกระทำล่าสุดใน Text Editor

Text editor หลายตัวช่วยให้ผู้ใช้ย้อนกลับไปดูการเปลี่ยนแปลงและแทรกคำที่ขาดหายไปได้ตามต้องการ การใช้ ListIterator ทำให้สามารถวนย้อนกลับผ่านรายการการกระทำ และแทรกการแก้ไขในตำแหน่งที่ต้องการได้

ในแบบฝึกหัดนี้ จะวนซ้ำผ่านรายการคำแบบย้อนกลับ และหากพบคำว่า "error" จะแทรก correction ไว้ก่อนหน้าคำนั้น เพื่อจำลองการทำงาน Undo ใน Text Editor

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Input/Output และ Streams ใน 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);
    }
}
แก้ไขและรันโค้ด