0Pricing
Java Academy · Lección

Requisitos y diseño

Defina el problema, las entradas y salidas, las restricciones y un plan sencillo para una herramienta de estadísticas de palabras.

Requisitos y diseño es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 1 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 3 lecciones en total.

Objetivo del proyecto

Objetivo: Crear una pequeña herramienta que informe estadísticas básicas de palabras. Tokenizaremos el texto, normalizaremos las palabras, contaremos las frecuencias y mostraremos los resultados principales.

Entradas y salidas

Entrada: una cadena de texto breve, escrita directamente en el código por ahora. Salida: total de palabras, palabras únicas y las N palabras más frecuentes con sus cantidades.

Reglas de normalización

Normalización: convierta el texto a minúsculas y elimine los signos de puntuación. Separe por caracteres que no sean letras para que los tokens sean limpios y comparables.

Estrategia de conteo

Conteo: asocie cada palabra con una frecuencia. En Java, un HashMap sencillo de String a Integer es claro y suficiente para una primera versión.

Plan del informe

Informe: imprima los totales y las N palabras principales, como las tres palabras más frecuentes. Cuando las cantidades empaten, cualquier orden es válido. Mantenga la salida sencilla.

Prototipo: ejecución breve

Prototipo: convierta a minúsculas, elimine los signos de puntuación, separe, cuente e imprima las tres palabras principales. Por ahora, escribimos el texto directamente en el código y mantenemos la salida legible.

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

Diseñar primero

Comprobación rápida: ¿Qué paso debería realizarse primero al diseñar este miniproyecto?

Repaso

Repaso: Delimitamos el alcance, definimos la E/S, establecimos las reglas, elegimos un mapa sencillo para el conteo y validamos el plan con una ejecución breve.

Preguntas frecuentes

¿La lección «Requisitos y diseño» es gratis?

Sí — el texto completo de «Requisitos y diseño» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 3 lecciones en total.

¿Qué aprenderé en «Requisitos y diseño»?

Defina el problema, las entradas y salidas, las restricciones y un plan sencillo para una herramienta de estadísticas de palabras. Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Java Academy?

No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 3.

¿Cuánto tiempo toma la lección «Requisitos y diseño»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Java Academy?

Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Requisitos y diseño
  2. Implementación
  3. Pruebas y extensiones
← Volver a Java Academy