import java.util.Scanner;

public class EjerciciosJava {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        contarVocales();
        contarPalabras();
        revertirCadena();
        palabraPalindroma();
        compararCadenas();
        concatenarCadenas();
        reemplazarLetras();
        contarLetraEspecifica();
        eliminarEspacios();
        convertirMayusMinus();
} 
   public static void contarVocales() {
        Scanner sc = new Scanner(System.in);
        System.out.println("31. Contar vocales en una frase:");
        System.out.print("Frase: ");
        String frase = sc.nextLine().toLowerCase();
        int contador = 0;
        for (char c : frase.toCharArray()) {
            if ("aeiou".indexOf(c) != -1) contador++;
        }
        System.out.println("Cantidad de vocales: " + contador);
    }

    public static void contarPalabras() {
        Scanner sc = new Scanner(System.in);
        System.out.println("32. Contar palabras en una frase:");
        System.out.print("Frase: ");
        String frase = sc.nextLine().trim();
        String[] palabras = frase.split("\\s+");
        System.out.println("Cantidad de palabras: " + palabras.length);
    }

    public static void revertirCadena() {
        Scanner sc = new Scanner(System.in);
        System.out.println("33. Revertir una cadena:");
        System.out.print("Cadena: ");
        String original = sc.nextLine();
        String invertida = new StringBuilder(original).reverse().toString();
        System.out.println("Invertida: " + invertida);
    }

    public static void palabraPalindroma() {
        Scanner sc = new Scanner(System.in);
        System.out.println("34. Palabra palíndroma:");
        System.out.print("Palabra: ");
        String palabra = sc.nextLine().toLowerCase();
        String reverso = new StringBuilder(palabra).reverse().toString();
        if (palabra.equals(reverso))
            System.out.println("Es palíndroma");
        else
            System.out.println("No es palíndroma");
    }

    public static void compararCadenas() {
        Scanner sc = new Scanner(System.in);
        System.out.println("35. Comparar dos cadenas:");
        System.out.print("Cadena 1: ");
        String c1 = sc.nextLine();
        System.out.print("Cadena 2: ");
        String c2 = sc.nextLine();
        if (c1.equals(c2))
            System.out.println("Las cadenas son iguales.");
        else
            System.out.println("Las cadenas son diferentes.");
    }

    public static void concatenarCadenas() {
        Scanner sc = new Scanner(System.in);
        System.out.println("36. Concatenar dos cadenas:");
        System.out.print("Cadena 1: ");
        String c1 = sc.nextLine();
        System.out.print("Cadena 2: ");
        String c2 = sc.nextLine();
        System.out.println("Concatenadas: " + c1 + c2);
    }

    public static void reemplazarLetras() {
        Scanner sc = new Scanner(System.in);
        System.out.println("37. Reemplazar letras en una cadena:");
        System.out.print("Cadena: ");
        String cadena = sc.nextLine();
        System.out.print("Letra a reemplazar: ");
        String vieja = sc.nextLine();
        System.out.print("Nueva letra: ");
        String nueva = sc.nextLine();
        String nuevaCadena = cadena.replace(vieja, nueva);
        System.out.println("Resultado: " + nuevaCadena);
    }

    public static void contarLetraEspecifica() {
        Scanner sc = new Scanner(System.in);
        System.out.println("38. Contar cuántas veces aparece una letra:");
        System.out.print("Cadena: ");
        String cadena = sc.nextLine().toLowerCase();
        System.out.print("Letra a contar: ");
        char letra = sc.nextLine().toLowerCase().charAt(0);
        int contador = 0;
        for (char c : cadena.toCharArray()) {
            if (c == letra) contador++;
        }
        System.out.println("Aparece " + contador + " veces.");
    }

    public static void eliminarEspacios() {
        Scanner sc = new Scanner(System.in);
        System.out.println("39. Eliminar espacios de una frase:");
        System.out.print("Frase: ");
        String frase = sc.nextLine();
        System.out.println("Sin espacios: " + frase.replace(" ", ""));
    }

    public static void convertirMayusMinus() {
        Scanner sc = new Scanner(System.in);
        System.out.println("40. Convertir mayúsculas ↔ minúsculas:");
        System.out.print("Texto: ");
        String texto = sc.nextLine();
        String convertido = "";
        for (char c : texto.toCharArray()) {
            if (Character.isUpperCase(c))
                convertido += Character.toLowerCase(c);
            else if (Character.isLowerCase(c))
                convertido += Character.toUpperCase(c);
            else
                convertido += c;
        }
        System.out.println("Convertido: " + convertido);
    }
}