Requisitos e design
Defina o problema, as entradas e saídas, as restrições e um plano simples para uma ferramenta de estatísticas de palavras.
Requisitos e design é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 1 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 3 aulas no total.
Objetivo do projeto
Objetivo: criar uma pequena ferramenta que informe estatísticas básicas de palavras. Nós iremos tokenizar o texto, normalizar as palavras, contar as frequências e exibir os principais resultados.
Entradas e saídas
Entrada: uma cadeia de texto curta, codificada diretamente por enquanto. Saída: total de palavras, palavras únicas e as N palavras mais frequentes com suas contagens.
Regras de normalização
Normalização: converta o texto para minúsculas e remova a pontuação. Separe pelos caracteres que não forem letras para que as unidades fiquem limpas e comparáveis.
Estratégia de contagem
Contagem: associe cada palavra a uma frequência. Em Java, um HashMap simples de String para números inteiros é claro e suficiente para uma primeira versão.
Plano do relatório
Relatório: imprima os totais e as N palavras mais frequentes, como as três primeiras. Quando houver empate nas contagens, qualquer ordem servirá. Mantenha a saída simples.
Protótipo: execução curta
Faça um protótipo: converta para minúsculas, remova a pontuação, divida, conte e imprima as três palavras mais frequentes. Por enquanto, codifique o texto diretamente e mantenha a saída legível.
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()));
}
}
Projetar primeiro
Verificação rápida: Qual etapa deve vir primeiro ao projetar este miniprojeto?
Recapitulação
Recapitulação: definimos o escopo, especificamos IO, estabelecemos as regras, escolhemos uma estrutura de mapa simples para a contagem e validamos o plano com uma execução curta.
Perguntas Frequentes
A aula “Requisitos e design” é grátis?
Sim — o texto completo de “Requisitos e design” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 3 aulas no total.
O que vou aprender em “Requisitos e design”?
Defina o problema, as entradas e saídas, as restrições e um plano simples para uma ferramenta de estatísticas de palavras. Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Java Academy?
Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 3.
Quanto tempo leva a aula “Requisitos e design”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Java Academy?
Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Requisitos e design
- Implementação
- Testes e extensões