Ayuda comparacion de cadenas JAVA(soy un inutil)

N1Tr0s

el caso es que tengo el siguiente codigo

spoiler

Y siempre me dice "Opcion no reconocida"...
si alguien me puede ayudar a no ahogarme en un vaso de agua y me dice en que fallo....

Shendraf

Cuando compares String usa el subop.equal o el subop.equalIgnoreCase en vez de == puesto que String es una clase que hereda de Object, no es un tipo primitivo como char, long o int.

N1Tr0s

arreglado. muchas gracias fenomeno!

GamA

Siempre se han de comparar con .equals o con .compareTo. Si quieres comparar si son iguales es más rápido usar equals, pero si quieres ordenar cadenas, por ejemplo, debes usar .compareTo.

P ej:

String a= "Hola";
String b= "Adios";

if(a.compareTo(b)>0){
System.out.println("A es mayor que B");
}else if(a.compareTo(b)<0){
System.out.println("A es menor que B");
}else{
System.out.println("A es igual que B");
}

Foxandxss

La razón es porque string no es un tipo primitivo en Java, entonces al usar == estás comparando las direcciones de memoria donde alojas la cadena, y en eso no coinciden, asi que tienes que usar .equal()

Usuarios habituales

  • Foxandxss
  • GamA
  • N1Tr0s
  • Shendraf