Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Mrsuit en 27 Abril 2014, 23:27 pm



Título: "c" es distinto de un string?.
Publicado por: Mrsuit en 27 Abril 2014, 23:27 pm
Tengo el siguiente problema, tengo un Array de strings de este modo:
Citar
v=[c,1,2].

Y luego hago
Citar
if (v[0]=="c"){
blabla
}


Mi problema es que jamás sucede el "blabla". Cuando recién me enseñaron algo de java me dijeron que debía usar algo del estilo "Equals.to", pero no encuentro nada parecido. Gracias de antemano :)


Título: Re: "c" es distinto de un string?.
Publicado por: Zoik en 27 Abril 2014, 23:37 pm
Buenas,

hasta donde yo sé, la manera de comparar una string de manera fiable es con:

Código
  1. stringA.equals(stringB);

O también:

Código
  1. stringA.compareTo(stringB);

Un saludo.


Título: Re: "c" es distinto de un string?.
Publicado por: Pablo Videla en 27 Abril 2014, 23:38 pm
o tambien String.equalsIgnoreCase("c");


Título: Re: "c" es distinto de un string?.
Publicado por: Chuidiang en 28 Abril 2014, 07:54 am
y "más mejor"

"c".equals(unString)

así ahorramos errores si unString es null, o tener que comprobarlo.

Se bueno.


Título: Re: "c" es distinto de un string?.
Publicado por: gordo23 en 28 Abril 2014, 08:46 am
Exacto, se usa el método que nombraron. Si no me equivoco esto es así porque un String en java, es un objeto, no un dato primitivo, por lo que si usas "==" lo único que compara es si 2 objetos hacen referencia a la misma posición en memoria.

Si me equivoco, haganmelo saber así aprendo un poco más :D

Saludos.-


Título: Re: "c" es distinto de un string?.
Publicado por: Mrsuit en 29 Abril 2014, 01:24 am
Muchas gracias por sus respuestas, logré solucionar mi problema. No me quedó muy claro el por qué eso sí. Así que googlearé un poco más.
Saludos.


Título: Re: "c" es distinto de un string?.
Publicado por: pyxolo en 1 Mayo 2014, 15:46 pm
La razón que ha dado gordo23, es la correcta.

El operador == sirve para realizar la comparación de igualdad entre elementos primitivos y la comparación de identidad entre objetos.

El método equals() (sobrescrito por algunas clases hijas) de la clase Object (heredada por todas las clases) permite comparar dos objetos entre sí a través de una comparación de igualdad (lógica).

Esto puede que te ayude: http://tutorialesnet.net/cursos/curso-de-java-7

Capítulo 14.

¡Saludos!