Ayuda necesito hacer un programa que diga si una palabra es un palindromo o no, que lea la palabra al ejecutar y los recorridos se hagan con foreach, en java.
necesitas hacerlo o que te pasen el código, porque no veo que indiques dudas, ni si quiera el intento de esfuerzo de publicaro en el subforo correcto...
Movido al subforo de Java que es donde se publican las dudas de java
Cita de: vhh70 en 21 Abril 2016, 02:57 AM
Ayuda necesito hacer un programa que diga si una palabra es un palindromo o no, que lea la palabra al ejecutar y los recorridos se hagan con foreach, en java.
Se deberia ingresar esa palabra en un arreglo, hacer una copia de ese arreglo y un arreglo recorrerlo hacia adelante y el otro hacia atras e ir comparando si los caracteres son iguales
Leer la cadena desde el principio al final y del final al principio e ir comprobando la igualdad/desigualdad de los caracteres.
Deberías poner un poco de empeño en solucionar problemas, no esperes que enuncies un problema y todos saltemos corriendo a solucionártelo. Ya aquí tienes la idea, hazlo!
Salu2s
PD: No obstante, es un problema bien sencillo que con una simple busqueda en google hubieras podido solucionar.
Todos tienen razon espero puedan ayudarme ya lo hice solo que no me funciona con oraciones, solo con palabras espero puedan ayudarme.
import java.io.*;
class Palindromo{
public static void main(String[] args) throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String cadena="";
String aux="";
int c=1;
System.out.print("Ingresa una palabra o una cadena:_");
cadena = br.readLine();
for(int i = 0; i < cadena.length(); i++){
if (cadena.charAt(i) != cadena.charAt(cadena.length()-1-i)){
c = 0;
}
}
if (c == 1){
System.out.println("Es un palindromo");
}else{
System.out.println("No es un palindromo");
}
}
}
:rolleyes: para que lea oraciones deberías ignorar los espacios en la comprobación :)
en ves de tomar en cuenta solamente caracteres toma en cuenta Strings claro despues de la comprobacion de cada palabra
Bueno una forma de hacerlo seria utilizando un método recursivo espero te sirva lo siguiente
/**
*
* @author DIANA
*/
public class Palindromo {
public static boolean esPalindromo(String palabra) {
return esPalindromo(palabra, 0, palabra.length() - 1);
}
private static boolean esPalindromo(String palabra, int ini, int fin) {
if (fin - ini + 1 == 0 || fin - ini + 1 == 1) {
return true;
} else {
if (palabra.charAt(ini) == palabra.charAt(fin)) {
return esPalindromo(palabra, ini + 1, fin - 1);
} else {
return false;
}
}
}
}