contar palabras con mapas hash

Technology

header ads

contar palabras con mapas hash

bueno aqui les dejo el codigo para contar palabras con mapas hash aqui el codigo:


import java.util.StringTokenizer;

import java.util.Map;

import java.util.HashMap;

import java.util.Set;

import java.util.TreeSet;

import java.util.Scanner;

public class ConteoTipoPalabras

{

private Map< String, Integer > mapa;

private Scanner scanner;

public ConteoTipoPalabras()

{

mapa = new HashMap< String, Integer >(); // crea objeto HashMap

scanner = new Scanner( System.in ); // crea objeto scanner

crearMap(); // crea un mapa con base en la entrada del usuario

mostrarMap(); // muestra el contenido del mapa

} // fin del constructor de ConteoTipoPalabras

// crea mapa a partir de la entrada del usuario

private void crearMap()

{

System.out.println( "Escriba una cadena:" ); // pide la entrada del usuario

String entrada = scanner.nextLine();

// crea objeto StringTokenizer para los datos de entrada

StringTokenizer tokenizer = new StringTokenizer( entrada );

// procesamiento del texto de entrada

while ( tokenizer.hasMoreTokens() ) // mientras haya más entrada

{

String palabra = tokenizer.nextToken().toLowerCase(); // obtiene una palabra

// si el mapa contiene la palabra

if ( mapa.containsKey( palabra ) ) // esta la palabra en el mapa?

{

int cuenta = mapa.get( palabra ); // obtiene la cuenta actual

mapa.put( palabra, cuenta + 1 ); // incrementa la cuenta

} // fin de if

else

mapa.put( palabra, 1 ); // agrega una nueva palabra con una cuenta de 1 al mapa

} // fin de while

} // fin del método crearMap

// muestra el contenido del mapa

private void mostrarMap()

{

Set< String > claves = mapa.keySet(); // obtiene las claves

// ordena las claves

TreeSet< String > clavesOrdenadas = new TreeSet< String >( claves );

System.out.println( "El mapa contiene:\nClave\t\tValor" );

// genera la salida para cada clave en el mapa

for ( String clave : clavesOrdenadas )

System.out.printf( "%-10s%10s\n", clave, mapa.get( clave ) );

System.out.printf(

"\nsize:%d\nisEmpty:%b\n", mapa.size(), mapa.isEmpty() );

} // fin del método mostrarMap

public static void main( String args[] )

{

new ConteoTipoPalabras();

} // fin de main

} // fin de la clase ConteoTipoPalabras

Post a Comment