ข้อกำหนดและการออกแบบ
กำหนดปัญหา อินพุตและเอาต์พุต ข้อจำกัด และแผนอย่างง่ายสำหรับเครื่องมือสถิติคำ
ข้อกำหนดและการออกแบบ เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ข้อกำหนดและการออกแบบ
- การนำไปใช้งาน
- การทดสอบและการต่อยอด