0Pricing
Java Academy · Lekcja

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

  1. Wymagania i projektowanie
  2. Implementacja
  3. Testowanie i rozszerzenia
← Powrót do Java Academy