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