Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con arreglo de caracteres

Estas en el tema de Ayuda con arreglo de caracteres en el foro de Java en Foros del Web. HOLA AMIGOS Tengo el siguiente codigo para decir si una palabra es palindroma (Palabras que al leerlas al derecho y al revés son son iguales ...
  #1 (permalink)  
Antiguo 06/12/2009, 12:29
Avatar de RauulMo  
Fecha de Ingreso: diciembre-2009
Ubicación: Santa Marta
Mensajes: 5
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta Ayuda con arreglo de caracteres

HOLA AMIGOS

Tengo el siguiente codigo para decir si una palabra es palindroma (Palabras que al leerlas al derecho y al revés son son iguales por ejm: salas,ana o en su defecto un numero 18581):

import java.util.Scanner;
public class ArregloCaracteres {

void metodo2(){

Scanner objscanner=new Scanner(System.in);
System.out.println("Digite una palabra");
String cadena=objscanner.nextLine();

char arreglo[] = new char[cadena.length()];
arreglo = cadena.toCharArray();
char arreglo2[] = new char[cadena.length()];
int i,ind;


ind=0;
for (i=(cadena.length());i>0; i--){
arreglo2[ind]=arreglo[i-1];
ind++;
}
if(arreglo[cadena.length()-1] == arreglo2[cadena.length()-1]){
System.out.println("Palindromo");
}

else if(arreglo[cadena.length()-1]!=arreglo2[cadena.length()-1]){
System.out.println("No palindromo");

}




}

public static void main (String[] args) {
ArregloCaracteres objclass=new ArregloCaracteres();
objclass.metodo2();

}
}



Efectivamente cuando lo ejecuto me sale que está bien, y al digitar una palabra por ejemplo salas, me sale bien "Palindromo" y al digitar una palabra que no es palindroma como raul me sale "No palindromo", el problema está en que el solo está comparando el ultimo caracter y el primero, osea que cuando escribo raulr me sale que es palindromo y está malo... lo que quiero es que compare todo el arreglo, osea todos los caracteres.... que al digitar raulr me salga que no es palindromo obviamente!!

Ayuda, les agradezco de ante mano!
  #2 (permalink)  
Antiguo 06/12/2009, 18:32
 
Fecha de Ingreso: octubre-2004
Mensajes: 79
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: Ayuda con arreglo de caracteres

porque recorres al revés el arreglo? no se supone que es palindromo?
  #3 (permalink)  
Antiguo 06/12/2009, 18:40
 
Fecha de Ingreso: octubre-2004
Mensajes: 79
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: Ayuda con arreglo de caracteres

bueno el tema esque partes del caracter anterior
evita el -1
cuando ingresas el arreglo invertido
  #4 (permalink)  
Antiguo 06/12/2009, 18:59
Avatar de jcMouse  
Fecha de Ingreso: noviembre-2009
Ubicación: Bolivia
Mensajes: 116
Antigüedad: 14 años, 5 meses
Puntos: 9
Respuesta: Ayuda con arreglo de caracteres

proba esto:

Código PHP:
/**
 * @web jc-mouse
 * @author mouse
 */
import java.util.Scanner;
public class 
ArregloCaracteres {

public 
boolean espalindromo(){
boolean valor=true;
    
Scanner objscanner=new Scanner(System.in);
    
System.out.println("Digite una palabra: ");    
    
String cadena=objscanner.nextLine();
    
char arreglo[] = new char[cadena.length()];    
    
arreglo cadena.toCharArray();    
    
char arreglo2[] = new char[cadena.length()];    
    
int i,ind;
    
ind=cadena.length();
    
System.out.println("- " cadena.length());
    for (
i;< (cadena.length()); i++){
        
arreglo2[i]=arreglo[ind 1];
        if(
arreglo[i]!=arreglo2[i]){
            
valor=false;
            break;
       }       
        
ind--;                
    }
    return 
valor;
}

Código PHP:
/**
 * @web jc-mouse
 * @author mouse
 */
public class Main {
    
    public static 
void main(String[] args) {              
        
ArregloCaracteres objclass=new ArregloCaracteres();
        if(
objclass.espalindromo()){
            
System.out.println("Palindromo");
        }
        else
        {
            
System.out.println("No Palindromo");
        }
    }    

Ni siquiera es necesario el uso de arreglos, pero modifique el codigo siguiendo tu logica.

saludos
  #5 (permalink)  
Antiguo 06/12/2009, 19:02
Avatar de jcMouse  
Fecha de Ingreso: noviembre-2009
Ubicación: Bolivia
Mensajes: 116
Antigüedad: 14 años, 5 meses
Puntos: 9
Respuesta: Ayuda con arreglo de caracteres

ignora esta linea, se me olvido borrarla

Código PHP:
System.out.println("- " cadena.length()); 
  #6 (permalink)  
Antiguo 06/12/2009, 23:16
Avatar de RauulMo  
Fecha de Ingreso: diciembre-2009
Ubicación: Santa Marta
Mensajes: 5
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Ayuda con arreglo de caracteres

Por qué no es necesario el uso de arreglos? explicamee
  #7 (permalink)  
Antiguo 07/12/2009, 03:54
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Ayuda con arreglo de caracteres

Teniendo en cuenta precisamente que es un palíndromo... no hace falta comprobar la igualdada para toda la longitud de la cadena: Basta comprobar la mitad y si la longitud es impar el de en medio tampoco hace falta.
Y en realidad no hacen falta dos arrays, basta con comparar dos elementos del mismo array jugando correctamente con los indices.
Y supongo que lo que dice jcMouse es que String tiene un metodo charAt para mirar carácteres uno a uno, así que en realidad no hace falta pasar el String a un Array.
Si pensais primero olvidándoos de lenguajes de programación en lo que se hace para ver si una palabra es palíndromo, quizá os salga después el algoritmo más claro.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:44.