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 frasen»);
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:
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.