Java - Programa en java, duda.

   
Vista:
Imágen de perfil de Miguel

Programa en java, duda.

Publicado por Miguel veslortv@gmail.com (2 intervenciones) el 02/05/2014 02:44:22
Soy nuevo en la programación en java y estaba haciendo unos ejercicios básicos para iniciarme en la programación.
El caso es que estaba haciendo un programa que me dijese si el numero que había introducido por el teclado era capicúa o no. Al ejecutarlo con NetBeans me dice que el numero no es capicua cuando en realidad si lo es. Repasando el código no veo el motivo el cual no me dice que el numero que he introducido es capicua.
Os dejo el código fuente para que le echeis un vistazo. Gracias de antemano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.util.Scanner;
/**
 *
 * @author Miguel
 */
public class Capicua {
 
    public static void main(String[] args){
 
        //Declarar variables
        int a,numero,b;
        String cadena = "";
        String cadena2 = "";
        Scanner teclado = new Scanner(System.in);
 
        //Introduccion del numero por el teclado
        System.out.println("Introduce un numero de 0 a 9999 y pulsa intro");
        a = teclado.nextInt();
        b = a;
 
        //Invertir numero introducido
       while(a / 10 > 0){
           numero = a % 10;
           cadena = cadena + numero;
           a = a / 10;
       }
       cadena = cadena + a;
 
       //Pasar el numero introducido a cadena2 para despues comparar los dos Strings
       cadena2 = String.valueOf(b);
 
       //Comprar los dos Strings
       if(cadena == cadena2){
           System.out.println("El numero es capicua");
       }else{
           System.out.println("El numero no es capicua");
       }
 
 
 
 
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Programa en java, duda.

Publicado por Mario (26 intervenciones) el 02/05/2014 03:11:29
No te funciona el programa por que estás comparando mal los elementos cadena y cadena2

cuando quieras comparar si 2 elementos de tipo String tienen la misma cadena debes hacerlo usando el método equals y no con ==

1
2
3
4
5
if(cadena.equals(cadena2)){
           System.out.println("El numero es capicua");
}else{
           System.out.println("El numero no es capicua");
}

el == compara la posición en memoria, no el contenido de los objetos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Miguel

Programa en java, duda.

Publicado por Miguel veslortv@gmail.com (2 intervenciones) el 02/05/2014 12:38:07
Muchas gracias, ayer cuando me fuí a la cama me acorde de la posibilidad de utilizar equals, me levanto y me encuentro tu respuesta.

Gracias por la rapida respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar