"c" es distinto de un string?.

Iniciado por Mrsuit, 27 Abril 2014, 23:27 PM

0 Miembros y 1 Visitante están viendo este tema.

Mrsuit

Tengo el siguiente problema, tengo un Array de strings de este modo:
Citarv=[c,1,2].

Y luego hago
Citarif (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 :)

Zoik

Buenas,

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

Código (java) [Seleccionar]
stringA.equals(stringB);

O también:

Código (java) [Seleccionar]
stringA.compareTo(stringB);

Un saludo.

Pablo Videla

o tambien String.equalsIgnoreCase("c");

Chuidiang

y "más mejor"

"c".equals(unString)

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

Se bueno.

gordo23

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.-

Mrsuit

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.

pyxolo

#6
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!