إحصائيات متقدمة
جزء من قسم المنطق وتدفق التنفيذ في رحلة Java على Coddy. الدرس 53 من 59.
سنضيف الآن إحصاءات متقدمة باستخدام أساليب HashMap للعثور على الكلمات الأكثر/الأقل شيوعًا وحساب النسب المئوية.
التحدي
سهلحسّن البرنامج لعرض:
- إجمالي عدد الكلمات
- عدد الكلمات الفريدة
- كل كلمة مع عدد مرات ظهورها ونسبتها المئوية من الإجمالي، سطر واحد لكل كلمة، بترتيب أبجدي (تحافظ
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());
}
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكمتدرّب بنفسك: مترجم Java عبر الإنترنت