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

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

جزء من قسم Logic & Flow في رحلة Java على Coddy. الدرس 53 من 59.

سنقوم الآن بإضافة إحصائيات متقدمة باستخدام أساليب HashMap للعثور على الكلمات الأكثر والأقل شيوعاً وحساب النسب المئوية.

challenge icon

التحدي

سهل

قم بتحسين البرنامج ليعرض:

  1. إجمالي عدد الكلمات
  2. عدد الكلمات الفريدة
  3. الكلمة (الكلمات) الأكثر شيوعاً
  4. الكلمة (الكلمات) الأقل شيوعاً
  5. النسبة المئوية من الإجمالي لكل كلمة

على سبيل المثال:

المدخلات:

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اختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow

تدرّب بنفسك: مترجم Java عبر الإنترنت