jueves, 7 de noviembre de 2024

Java 032 ► Contar las vocales y consonantes de un String

Ejercicio 032: Contar cuántas vocales y consonantes tiene un String. (No se consideran vocales acentuadas ni caracteres que no sean letras ni la "ñ").

Entrada: "Una frase cualquiera"

Salida: Vocales: 10
           Consonantes: 8

import java.util.*;

public class Java_032 {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        String frase = "";
        int vocal = 0, consonante = 0;
      
        System.out.println("Ingresa la frase");
        frase = sc.nextLine();
        
        frase = frase.toLowerCase();
        
        for (int i=0; i < frase.length(); i++) {
            if ((frase.charAt(i) == 'a') ||
                (frase.charAt(i) == 'e') ||
                (frase.charAt(i) == 'i') ||
                (frase.charAt(i) == 'o') ||
                (frase.charAt(i) == 'u')) {
                vocal++;
            } else if (frase.charAt(i) != ' ') {
                consonante++;
            }
        }
        
        System.out.println();
        System.out.println("Vocales:\t " + vocal);
        System.out.println("Consonantes: " + consonante);
    }
}


Explicación:

Dado que no estamos considerando caracteres especiales como vocales acentuadas o símbolos suponemos que el String de entrada solo contendrá letras, lo primero que hacemos es convertir todo el String a minúsculas (con el método toLowerCase) para que al revisarlo letra por letra no tengamos que evaluar si es minúscula o mayúscula.

Luego recorremos el String como si de un arreglo se tratara con un for y por cada uno de sus caracteres preguntamos si es igual a las letras "a", "e", "i", "o" o "u", en cualquiera de esos casos contabilizamos una vocal.

Si la posición actual del String no es ninguna de las anteriores y sabiendo que el String solo contiene vocales y consonantes, sabemos que si no es vocal y omitiendo los espacios significa que es consonante y por lo tanto en el else se contabilizan las consonantes. Al final solo se muestran los resultados.

No hay comentarios:

Publicar un comentario