Требования и проектирование
Определите задачу, входные и выходные данные, ограничения и простой план инструмента для статистики слов.
«Требования и проектирование» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Требования и проектирование
- Реализация
- Тестирование и расширения