Menu
Coddy logo textTech

סטטיסטיקות מתקדמות

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 53 מתוך 59.

כעת נוסיף סטטיסטיקות מתקדמות באמצעות שיטות של HashMap כדי למצוא את המילים הנפוצות ביותר והנדירות ביותר ולחשב אחוזים.

challenge icon

אתגר

קל

שפרו את התוכנית כך שתציג:

  1. את מספר המילים הכולל
  2. את מספר המילים הייחודיות
  3. כל מילה, עם מספר הפעמים שהיא מופיעה והאחוז שלה מתוך הסך הכול, שורה אחת לכל מילה, בסדר אלפביתי (TreeMap שומרת על מפתחות ממוינים; אם משתמשים ב-HashMap, יש למיין את המפתחות לפני ההדפסה)

לדוגמה:

קלט:

Coddy!

פלט צפוי:

Total words: 1
Unique words: 1
Word statistics:
coddy: 1 (100.00%)

נסו בעצמכם

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String text = scanner.nextLine();
        
        String[] sentences = text.split("\\.");
        String[][] textArray = new String[sentences.length][];
        HashMap<String, Integer> wordCount = new HashMap<>();
        
        for (int i = 0; i < sentences.length; i++) {
            textArray[i] = sentences[i].trim().split(" ");
            for (int j = 0; j < textArray[i].length; j++) {
                if (!textArray[i][j].isEmpty()) {
                    String word = textArray[i][j]
                        .replaceAll("[^a-zA-Z ]", "")
                        .toLowerCase();
                    wordCount.put(word, wordCount.getOrDefault(word, 0) + 1);
                }
            }
        }
        
        System.out.println("Word counts:");
        for (Map.Entry<String, Integer> entry : wordCount.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Java אונליין