0Pricing
Java Academy · บทเรียน

ข้อกำหนดและการออกแบบ

กำหนดปัญหา อินพุตและเอาต์พุต ข้อจำกัด และแผนอย่างง่ายสำหรับเครื่องมือสถิติคำ

ข้อกำหนดและการออกแบบ เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

เป้าหมายของโครงการ

เป้าหมาย: สร้างเครื่องมือขนาดเล็กที่รายงานสถิติพื้นฐานของคำ เราจะแยกข้อความเป็นคำ ทำคำให้อยู่ในรูปแบบมาตรฐาน นับความถี่ และแสดงผลลัพธ์ที่พบบ่อยที่สุด

ข้อมูลเข้าและข้อมูลออก

ข้อมูลเข้า: String ข้อความสั้นที่กำหนดตายตัวในโค้ดไปก่อน ข้อมูลออก: จำนวนคำทั้งหมด จำนวนคำที่ไม่ซ้ำกัน และคำที่พบบ่อยที่สุด N คำพร้อมจำนวนครั้ง

กฎการทำให้เป็นรูปแบบมาตรฐาน

การทำให้เป็นรูปแบบมาตรฐาน: เปลี่ยนข้อความเป็นตัวพิมพ์เล็กและตัดเครื่องหมายวรรคตอน แยกตามอักขระที่ไม่ใช่ตัวอักษร เพื่อให้โทเคนสะอาดและเปรียบเทียบกันได้

แนวทางการนับ

การนับ: จับคู่คำแต่ละคำกับความถี่ ใน Java การใช้ HashMap ที่จับคู่ String กับชนิดจำนวนเต็มเป็นวิธีที่ชัดเจนและเพียงพอสำหรับการทำงานรอบแรก

แผนการรายงาน

การรายงาน: พิมพ์ยอดรวมและคำที่พบบ่อยที่สุด N คำ เช่น คำที่พบบ่อยที่สุดสามคำ หากจำนวนครั้งเท่ากัน จะเรียงลำดับใดก็ได้ ให้ข้อมูลออกเรียบง่าย

ต้นแบบ: การทำงานรอบเล็ก

สร้างต้นแบบโดยเปลี่ยนเป็นตัวพิมพ์เล็ก ตัดเครื่องหมายวรรคตอน แยกคำ นับ และพิมพ์คำที่พบบ่อยที่สุดสามคำ ตอนนี้เรากำหนดข้อความตายตัวในโค้ดไปก่อน และทำให้ข้อมูลออกอ่านง่าย

public class Main {
  public static void main(String[] args) {
    // Prototype: hard coded text, normalize, count, and print simple stats.
    String text = "To be, or not to be: that is the question. To be or not?";
    // 1) Lowercase
    String lower = text.toLowerCase();
    // 2) Replace non letters with spaces for splitting
    String cleaned = lower.replaceAll("[^a-z]+", " ");
    // 3) Split on spaces and filter empty tokens
    String[] tokens = cleaned.trim().split("\\s+");

    java.util.Map<String, Integer> freq = new java.util.HashMap<>();
    int total = 0;
    for (int i = 0; i < tokens.length; i = i + 1) {
      String w = tokens[i];
      if (w.length() == 0) continue;
      total = total + 1;
      Integer c = freq.get(w);
      if (c == null) freq.put(w, 1);
      else freq.put(w, c + 1);
    }

    // Simple top 3 by repeated linear scan (fine for small texts)
    for (int k = 0; k < 3; k = k + 1) {
      String bestWord = null;
      int bestCount = -1;
      for (java.util.Map.Entry<String,Integer> e : freq.entrySet()) {
        String word = e.getKey();
        int count = e.getValue();
        if (count > bestCount) {
          bestCount = count;
          bestWord = word;
        }
      }
      if (bestWord == null) break;
      System.out.println("#" + (k + 1) + " " + bestWord + " = " + bestCount);
      // mark as used
      freq.put(bestWord, -1000000);
    }

    System.out.println("Total words: " + total);
    System.out.println("Unique words: " + (freq.size()));
  }
}

ออกแบบก่อน

ตรวจสอบอย่างรวดเร็ว: ขั้นตอนใดควรเกิดขึ้นก่อนเมื่อออกแบบโครงการขนาดเล็กนี้

สรุปทบทวน

สรุปทบทวน: เรากำหนดขอบเขต ระบุ IO ตั้งกฎ เลือกโครงสร้างแบบแมปอย่างง่ายสำหรับการนับ และตรวจสอบแผนด้วยการทำงานรอบเล็กแล้ว

คำถามที่พบบ่อย

บทเรียน “ข้อกำหนดและการออกแบบ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ข้อกำหนดและการออกแบบ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ข้อกำหนดและการออกแบบ”

กำหนดปัญหา อินพุตและเอาต์พุต ข้อจำกัด และแผนอย่างง่ายสำหรับเครื่องมือสถิติคำ คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน

บทเรียน “ข้อกำหนดและการออกแบบ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ข้อกำหนดและการออกแบบ
  2. การนำไปใช้งาน
  3. การทดสอบและการต่อยอด
← กลับไปที่ Java Academy