Java - que pasa con este if ?

 
Vista:

que pasa con este if ?

Publicado por oxcar (1 intervención) el 09/09/2018 01:00:59
alguien sabe que pasa con este if ? la la salida(String sexs;) siempre sera H aunque se incluya la m/M en sex

codigo:
1
2
3
if (("m"==sex.getText())||(sex.getText()=="M"))
       {sexs.setText("M");}
       else{sexs.setText("H");}


dejo unas imágenes por si quieren ver el código en el IDE
IMG_20180908_173942
IMG_20180908_174054
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
Imágen de perfil de xve
Val: 686
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

que pasa con este if ?

Publicado por xve (345 intervenciones) el 09/09/2018 08:50:02
Hola Oxcar, por lo que dices, entiendo que el error esta en la función sex.getText()... exactamente que devuelve esa función?
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

que pasa con este if ?

Publicado por Ruben (1 intervención) el 04/10/2018 16:02:32
Buenas,

Esto no se si lo solucionará pero desde luego mejorará tu codigo:

1
2
3
if (("m"==sex.getText())||(sex.getText()=="M"))
       {sexs.setText("M");}
       else{sexs.setText("H");}


Cambialo por:

1
2
3
4
5
6
7
String letra = "m";
if(sex.getText.equalsIgnoreCase(letra){
     sexs.setText("M");
}
else{
     sexs.setText("H");
}


Los String NUNCA se comparan con 2 iguales, se debe utilizar la clase equals del paquete utils. y para evitar que la comparación sea entre mayusculas o minusculas se usa IgnoreCase.

Comparar String con == es un error muy común al principio, se comparan las referencias y no los valores, de ahí que muchas veces no den el resultado esperado.

En la API de JAVA existe esta funcion para String --> equalsIgnoreCase, usala.

Te dejo enlace de la API para que puedas ver ejemplos
http://www.w3api.com/wiki/Java:String.equalsIgnoreCase()

Salu2
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