Java - No puedo comparar dos Strings

 
Vista:
sin imagen de perfil
Val: 17
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

No puedo comparar dos Strings

Publicado por Luisda (11 intervenciones) el 26/12/2017 14:03:58
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:

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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");
	}
 
}
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
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

No puedo comparar dos Strings

Publicado por Yamil Bracho (2315 intervenciones) el 26/12/2017 14:26:10
Es mas facil que uses un StringBuilder. Te quedaria :


1
2
3
4
5
6
StringBuilder sb = new StringBuilder();
for (int i = numero.length()-1; i >= 0; i--) {
  sb.append(numero.chatAt(i));
}
 
String numerInvertido = sb.toString();

Y para comparar dos Strings (Y objetos en general) usas el metodo equals(), es decir en vez de
1
if (numerInvertido == numero) {
haces
1
if (numeroInvertido.equals(numero))

o tambien puedes usar el metodo compareTo()
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