0Pricing
Java Academy · Aula

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

  1. Requisitos e design
  2. Implementação
  3. Testes e extensões
← Voltar para Java Academy