SoloCodigo

Programación General => Java => Mensaje iniciado por: piraquive en Lunes 23 de Abril de 2007, 00:43

Título: Comparaciones
Publicado por: piraquive en Lunes 23 de Abril de 2007, 00:43
Buenas a todos, estoy haciendo una aplicacion en j2me que captura datos de una base de datos, pero tengo un problema comparando unas variables.

int ch;
String message1;

 while ((ch = is.read()) != -1) {
                     message1 = message1 + (char) ch;
}

 el problema es que si por ejemplo message1= on y yo la comparo if(message1=="on")
no me entra al if.

Si alguien me puede ayudar muchisimas gracias.
Título: Re: Comparaciones
Publicado por: hano en Lunes 23 de Abril de 2007, 01:24
Hola:

Para comparar String (http://java.sun.com/javase/6/docs/api/java/lang/String.html), utiliza el método equals (http://java.sun.com/javase/6/docs/api/java/lang/String.html#equals(java.lang.Object)).

Los String en Java son objetos invariantes. Al hacer la comparación que comentas, estás comparando las referencias a dos objetos diferentes, por eso su comparación se evalúa a false.
Código: Text
  1.  
  2. String s1 = "aaa";
  3. String s2 = "aaa";
  4. String s3 = "AAA";
  5. boolean cmp1 = (s1 == s2); // false
  6. boolean cmp2 = (s1.equals(s2)); // true
  7. boolean cmp3 = (s1.equalsIgnoreCase(s3)); // true
  8.  
  9.  

Un saludo.

Luis Javier López Arredondo