Wymagania i projektowanie
Zdefiniują Państwo problem, dane wejściowe i wyjściowe, ograniczenia oraz prosty plan narzędzia do statystyk słów.
Wymagania i projektowanie to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 1 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 3 lekcji w sumie.
Cel projektu
Cel: Zbudować małe narzędzie raportujące podstawowe statystyki słów. Tekst zostanie podzielony na tokeny, słowa znormalizowane, częstotliwości zliczone, a najczęstsze wyniki wyświetlone.
Dane wejściowe i wyjściowe
Dane wejściowe: krótki ciąg tekstowy, na razie wpisany na stałe. Dane wyjściowe: łączna liczba słów, liczba unikatowych słów oraz N najczęstszych słów wraz z ich licznością.
Zasady normalizacji
Normalizacja: zamiana tekstu na małe litery i usunięcie znaków interpunkcyjnych. Tekst należy dzielić przy znakach niebędących literami, aby tokeny były czyste i porównywalne.
Strategia zliczania
Zliczanie: każdemu słowu należy przypisać jego częstotliwość. W Javie na początek wystarczy prosty HashMap odwzorowujący String na Integer.
Plan raportowania
Raportowanie: należy wyświetlić podsumowania i N najczęstszych elementów, na przykład trzy najczęstsze słowa. W przypadku takiej samej liczności dowolna kolejność jest prawidłowa. Wynik powinien pozostać prosty.
Prototyp: krótki przebieg
Prototyp: zamiana na małe litery, usunięcie znaków interpunkcyjnych, podział, zliczanie i wyświetlenie trzech najczęstszych słów. Na razie tekst jest wpisany na stałe, a wynik pozostaje czytelny.
public class Main {
public static void main(String[] args) {
// Prototype: hard coded text, normalize, count, and print simple stats.
String text = "To be, or not to be: that is the question. To be or not?";
// 1) Lowercase
String lower = text.toLowerCase();
// 2) Replace non letters with spaces for splitting
String cleaned = lower.replaceAll("[^a-z]+", " ");
// 3) Split on spaces and filter empty tokens
String[] tokens = cleaned.trim().split("\\s+");
java.util.Map<String, Integer> freq = new java.util.HashMap<>();
int total = 0;
for (int i = 0; i < tokens.length; i = i + 1) {
String w = tokens[i];
if (w.length() == 0) continue;
total = total + 1;
Integer c = freq.get(w);
if (c == null) freq.put(w, 1);
else freq.put(w, c + 1);
}
// Simple top 3 by repeated linear scan (fine for small texts)
for (int k = 0; k < 3; k = k + 1) {
String bestWord = null;
int bestCount = -1;
for (java.util.Map.Entry<String,Integer> e : freq.entrySet()) {
String word = e.getKey();
int count = e.getValue();
if (count > bestCount) {
bestCount = count;
bestWord = word;
}
}
if (bestWord == null) break;
System.out.println("#" + (k + 1) + " " + bestWord + " = " + bestCount);
// mark as used
freq.put(bestWord, -1000000);
}
System.out.println("Total words: " + total);
System.out.println("Unique words: " + (freq.size()));
}
}
Najpierw projekt
Szybkie sprawdzenie: Który krok powinien nastąpić jako pierwszy podczas projektowania tego małego projektu?
Podsumowanie
Podsumowanie: Ustalono zakres, zdefiniowano IO, określono reguły, wybrano prostą mapę do zliczania oraz zweryfikowano plan za pomocą krótkiego przebiegu.
Często zadawane pytania
Czy lekcja „Wymagania i projektowanie” jest bezpłatna?
Tak — pełny tekst „Wymagania i projektowanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Wymagania i projektowanie”?
Zdefiniują Państwo problem, dane wejściowe i wyjściowe, ograniczenia oraz prosty plan narzędzia do statystyk słów. Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Java Academy?
Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 3.
Ile czasu zajmuje lekcja „Wymagania i projektowanie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?
Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wymagania i projektowanie
- Implementacja
- Testowanie i rozszerzenia