Buscar este blog

Translate

thumbnail

Reto Frases Palíndromas en Java





Hola querido lector, hoy quiero hacer un reto que he visto en acepta el reto, la verdad bastante entretenido, y en el cual me he entretenido a la hora de hacerlo, la mayor parte del código está basado en otros proyectos que he trabajado aquí en mi blog, que son el de los patrones (pattern) y el de invertir una palabra.

Y es que en el mundo de la programación si puedes evitar reinventar la rueda, evítalo, muchas veces es mejor usar una librería o framework que haga lo mismo que haces tu, pero más eficiente y mucho más probado.

Debo de decir que he recibido alguna queja por copyright por parte de Facebook, con respecto a estos tutoriales, así que abajo dejo el enlace al ejercicio completo, espero que no moleste, pero es la única forma de publicar este tutorial.

En cuanto a la codificación UTF-8 he tenido problemas en cuanto a mi portátil, más abajo les dejo la opción de NetBeans que yo he usado para que funcione con ISO-8859-1 , sin más les dejo el enunciado de acepta el reto:




Por aquí dejo mi código:


        try {


            String frase = "";
            String fraseInvertida = "";
            Scanner sca = new Scanner(System.in);
            System.out.println("Pongame una frase\n");
            frase = sca.nextLine().toString();//Ponemos nuestra variable
            frase = frase.toLowerCase();
            frase = frase.replaceAll("[ ]", "");
            frase = frase.replaceAll("á", "a");
            frase = frase.replaceAll("é", "e");
            frase = frase.replaceAll("í", "i");
            frase = frase.replaceAll("ó", "o");
            frase = frase.replaceAll("ú", "u");
            frase = frase.replaceAll("à", "a");
            frase = frase.replaceAll("è", "e");
            frase = frase.replaceAll("ì", "i");
            frase = frase.replaceAll("ò", "o");
            frase = frase.replaceAll("ù", "u");

            Pattern patNac = Pattern.compile("[a-zA-Z0-9]+");// Creo el patrón
            Matcher matNac = patNac.matcher(frase);//
            if (!matNac.matches()) {
                throw new Exception("Error, debes de poner una frase válida");
            }

            int longitud = (int) frase.length() - 1;

            do {
                fraseInvertida = fraseInvertida + frase.charAt(longitud);//nos devuele el carácter en la posición
                longitud = longitud - 1;//vamos restando posiciones
            } while (longitud >= 0);

            if (frase.equals(fraseInvertida)) {
                System.out.println("SI");
            } else {
                System.out.println("NO");
            }
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }



Eso es todo, espero que hayan aprendido algo, si te gustó mi artículo puedes dejar un comentario en blogger o escribirme a mi página en Facebook llamado Tomhard Computer, muchas gracias por leerme y hasta la próxima

FUENTE:


Subscribe by Email

Follow Updates Articles from This Blog via Email

No Comments

Sponsor

Popular Posts

Con la tecnología de Blogger.