Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

إحصائيات متقدمة

جزء من قسم المنطق وتدفق التنفيذ في رحلة 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 عبر الإنترنت