package examenes.examen20241122;

public class Ejercicio_d {
    public static void main(String[] args) {
        //Declaramos el texto
        String texto = "estoEsUnEjemplo";

        //Mostramos los cambios antes
        System.out.println(texto);
        //Y después
        System.out.println(cambiarASnake(texto));


    }

    /**
     * Cambiamos de camelCase a snake_case
     *
     * @param texto Texto en camelCase
     * @return Texto en snake_case
     */
    public static String cambiarASnake(String texto) {
        //Creamos un StringBuffer o StringBuilder
        StringBuffer textoSnake = new StringBuffer();

        //Por cada letra comprobamos si está en mayúscula y si lo está lo cambiamos por _ y la letra en minúscula
        for (int i = 0; i < texto.length(); i++) {
            if (texto.charAt(i) >= 65 && texto.charAt(i) <= 90) {
                textoSnake.append("_");
                textoSnake.append((char) (texto.charAt(i) + 32));
            } else {
                textoSnake.append(texto.charAt(i));
            }
        }

        //Devolvemos el String
        return textoSnake.toString();
    }
}
