Cita:
Iniciado por ipraetoriux
...pues comparar String en Java parece una tontera pero trae dolores de cabeza a mas de uno. Es un error en Java utilizar operadores relacionales (== o !=) para comparar String...porque?...recuerda que un String en Java es un OBJETO...no es un tipo de dato primitivo. Por la tanto, cadena1 y cadena2 almacenan la dirección de memoria donde se encuentra el objeto, en este caso un String...por eso se les llama variables de referencia...porque hacen referencia a un direccion de memoria donde se encuentra un objeto. Entonces si tu comparas cadena1 == cadena2, lo que estas haciendo en realidad es comparar si las direcciones de memoria son iguales...no estas comparado los String...para comparar los String debes usar métodos...
Tienes 3 formas de comparar Strings:
La primera, usando equals();
Código JAVA:
Ver originalif(cadena1.equals(cadena2)){
// son iguales
}else{
// no son iguales
}
La segunda forma, usando CompareTo()
Código JAVA:
Ver originalif (cadena1.compareTo(cadena2) == 0){
// cadena1 y cadena2 son iguales
}else if (cadena1.compareTo(cadena2) < 0){
//cadena1 va antes que cadena2
}else if (cadena1.compareTo(cadena2) > 0){
//cadena2 va después que cadena1
}
Y luego tienes Collator, pero es algo mas complicado de usar, te recomiendo las dos anteriores....
Código PHP:
Ver originalaqui funciona bien
public static void main(String arg[]){
String cadena="hola";
int numero=5;
if(cadena.equals(numero))
{
System.out
.println
("las variables son iguales"); }
else
{
System.out
.println
("no son lo mismo valores"); }
}
en la de abajo no sale
public static void main(String arg[]){
String cadena="hola";
int numero=5;
if(cadena.compareTo(numero))
{
System.out
.println
("las variables son iguales"); }
else
{
System.out
.println
("no son lo mismo valores"); }
en la de arriba todo sale bien pero en la de abajo no
y no se cual es mi error
gracias