0Pricing
Java Academy · Урок

Требования и проектирование

Определите задачу, входные и выходные данные, ограничения и простой план инструмента для статистики слов.

«Требования и проектирование» — бесплатный урок Java Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 3 уроков всего.

Цель проекта

Цель: создать небольшой инструмент для вывода базовой статистики слов. Мы разделим текст на элементы, нормализуем слова, подсчитаем частоты и покажем наиболее часто встречающиеся результаты.

Входные и выходные данные

Входные данные: короткая строка текста, пока заданная непосредственно в коде. Выходные данные: общее количество слов, количество уникальных слов и N наиболее частотных слов с их количеством.

Правила нормализации

Нормализация: переведите текст в нижний регистр и удалите пунктуацию. Разделите текст по символам, не являющимся буквами, чтобы элементы были чистыми и сопоставимыми.

Стратегия подсчёта

Подсчёт: сопоставьте каждому слову его частоту. В Java простой HashMap, сопоставляющий String и целое число, понятен и достаточен для первого варианта.

План формирования отчёта

Формирование отчёта: выведите итоги и N наиболее частотных слов, например три самых частотных слова. При одинаковых количествах подойдёт любой порядок. Делайте вывод простым.

Прототип: небольшой запуск

Создайте прототип: переведите текст в нижний регистр, удалите пунктуацию, разделите его на элементы, подсчитайте слова и выведите три наиболее частотных. Пока задайте текст непосредственно в коде и сохраняйте вывод понятным.

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()));
  }
}

Сначала проектирование

Быстрая проверка: какой шаг должен быть первым при проектировании этого небольшого проекта?

Повторение

Повторение: Мы определили границы задачи, задали IO, установили правила, выбрали простую карту для подсчёта и проверили план небольшим запуском.

Часто задаваемые вопросы

Урок «Требования и проектирование» бесплатный?

Да — полный текст урока «Требования и проектирование» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 3 уроков всего.

Чему я научусь в уроке «Требования и проектирование»?

Определите задачу, входные и выходные данные, ограничения и простой план инструмента для статистики слов. Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Java Academy?

Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.

Сколько времени занимает урок «Требования и проектирование»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Java Academy?

Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Требования и проектирование
  2. Реализация
  3. Тестирование и расширения
← Назад к Java Academy