סטטיסטיקות מתקדמות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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מערכים רב־ממדיים
יסודות מערכים דו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום — מערכים דו־ממדייםחיבור וחיסור מטריצותמערכים מדורגיםמערכים תלת־ממדיים ומעבר להםתבניות נפוצות במערכים דו־ממדייםסיכום — כל מה שצריך לדעת על מערכיםתרגלו בעצמכם: קומפיילר Java אונליין