domingo, 9 de mayo de 2010

Resolucion de la Pregunta 2 de la Prueba

/**
*Este programa permite dada una frase introducida por el usuario contar la cantidad de digitos, caracteres
*especiales, letras, y las veces que se repite una letra.
*
*@author Domingo Clemente 
*@version 1.0
*/

import java.io.*;

public class p02{
    public static void main(String arg[])throws IOException    {
        int i, j, x, repeticion, letras, numero, blanco, otros;
        String str, cadena;

//LEER LA FRASE
        BufferedReader in;
        in=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("\n\n");
        System.out.print("Introduzca una frase: ");
        str=in.readLine();

//Creo un arreglo para contar cada caracter
        x = str.length();
        char c[] = new char [x];
        c = str.toCharArray(); //convierte el string a un array

//Inicializo los contadores
        numero=0;
        blanco=0;
        otros=0;
        letras=0;
          
        System.out.println("La frase de entrada es " + str);
        System.out.println("El tamaño de la frase es: " + x);
       
// Se cuentan los tipos de caracteres introducidos en la frase
        for(i=0; i
            if(Character.isLetter(c[i]))       

                letras+=1;
            else if(Character.isDigit(c[i])) //ver si es un digito
                numero+=1;
              else if(Character.isWhitespace(c[i]))// ver si es un espacio en blanco
                blanco+=1;
            else
                otros +=1; // es un caracter especial
        }

//Se imprimen los primeros resultados del analisis de la frase
        System.out.println("Cantidad de Letras es: " + letras);
        System.out.println("Cantidad de Digitos es: " + numero);
        System.out.println("Cantidad de Espacios en Blanco es: " + blanco);
        System.out.println("Cantidad de Caracteres Especiales es: " + otros);

// Se cuentan las repeticiones, cuando se consigue una repeticion, en esa posicion se le asigna un blanco,
// para no volverlo a contar, en la siguiente pasada del ciclo for.
       for(i=0; i
      {
                if(Character.isLetter(c[i])) //ver si es una letra
               {
                   repeticion=0;
                   for(j=i+1; j
 

//    Se verifican las repeticiones, sin tomar en cuenta si son mayusculas o minusculas.                      
                    if (Character.toUpperCase(c[i])==Character.toUpperCase(c[j]))
                    {
                        repeticion++;
                        c[j]=' ';
                    }
                }

// Si hay repeticiones, envio el mensaje con la cantidad de veces que se repite           
                if (repeticion>0)
                    System.out.println("La letra " + c[i] + " se repite: " + repeticion + " veces");
            }
        }
    }
}

No hay comentarios:

Publicar un comentario