Título: Ayuda comparando Strings Publicado por: luisdalopez56 en 26 Diciembre 2017, 14:23 pm Estoy realizando un ejercicio podeis omitir el significado de algunos de los metodos que tengo creados, pero a mi el que me interesa el es metodo llamado capicua que está al final. Resulta que este debe recibir un int y tranformarlo a string, darle la vuelta al numero y comprobar si este es capicua. El problema lo tengo a la hora de comparar el numero recibido con el numero invertido, no se por que pero no me lo compara. Gracias de antemano. Aqui esta el código:
import java.util.Scanner; public class numero { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Escribe el primer numero: "); int numeroPrimero = sc.nextInt(); System.out.print("Escribe el segundo numero: "); int numeroSegundo = sc.nextInt(); if (numeroPrimero > 0 && numeroSegundo < 1000) { numeroMayor(numeroPrimero, numeroSegundo); System.out.print("¿De que numero quieres ver los múltiplos?"); int numeroMultiplo = sc.nextInt(); multiplos(numeroMultiplo); capicua(numeroPrimero); } else { System.out.println("Numeros no válidos"); } } public static void numeroMayor (int numeroPrimero, int numeroSegundo) { if (numeroPrimero > numeroSegundo) { int Mayor = numeroPrimero; System.out.println("El numero mayor es " + Mayor); } if (numeroPrimero < numeroSegundo) { int Mayor = numeroSegundo; System.out.println("El numero mayor es " + Mayor); } if (numeroPrimero == numeroSegundo){ System.out.printf("Los numeros %d y %d son iguales %n", numeroPrimero, numeroSegundo); } } public static void multiplos (int numeroPrimero) { for (int i = 0; i <= 4; i++) { int multiplicacion = numeroPrimero * i; System.out.println(numeroPrimero + " multiplicado por " + i + " es igual a " + multiplicacion); } } public static void capicua (int numeroCapicua) { String numero = Integer.toString(numeroCapicua); String numerInvertido = ""; for (int i = numero.length()-1; i >= 0; i--) { numerInvertido = numerInvertido + numero.charAt(i); } System.out.println("El numero sin invertir es: " + numero); System.out.println("El numero invertido es: " + numerInvertido); if (numerInvertido == numero) { System.out.println("El numero es capicua"); } if (numerInvertido != numero) { System.out.println("El numero no es capicua"); } } } Título: Re: Ayuda comparando Strings Publicado por: ivancea96 en 26 Diciembre 2017, 15:02 pm Las String son objetos, y no los puedes comparar con "==". Las comparas con el método .equals():
Código
Lo mismo para todos lo objetos (variables que no sean tipos primitivos, como int o double, entre otros) Al comparar con "==" dos objetos, lo que comparas realmente es si esos 2 objetos son "el mismo objeto" exactamente, mientras que equals compara si los dos objetos tienen "el mismo contenido". Título: Re: Ayuda comparando Strings Publicado por: luisdalopez56 en 26 Diciembre 2017, 15:13 pm Las String son objetos, y no los puedes comparar con "==". Las comparas con el método .equals(): Muchisimas gracias, apenas comienzo en java y necesito ayuda.Código
Lo mismo para todos lo objetos (variables que no sean tipos primitivos, como int o double, entre otros) Al comparar con "==" dos objetos, lo que comparas realmente es si esos 2 objetos son "el mismo objeto" exactamente, mientras que equals compara si los dos objetos tienen "el mismo contenido". |