Java/Android: Comparación de String s1==s2 no funciona
Pregunta de Invitado | 16/04/2022 a las 19:51
Estoy tratando de comparar dos cadenas (strings) usando el operador "==" en Java para Android. Tengo el siguiente código:
String s1 = new String("abc");
String s2 = new String("abc");
if (s1 == s2) {
// igual?!
} else {
// no igual?!
}No sé por qué, pero esta condición siempre devuelve "false" independiente de si s1 y s2 son iguales o no.
¿Cuál es mi error aquí? En todos los demás idiomas de programación, sé y estoy familiarizado, está funcionando exactamente así.
Temas Relacionados
Java: Comparación de Cadenas - Equals independientemente de Mayúsculas y Minúsculas
Información | 0 Comentarios
Java: Split en el punto str.split(".") no funciona
Pregunta | 1 Respuesta
Java: Mantener Campos vacíos en Split-Array
Consejo | 0 Comentarios
JavaScript: Comparación de Cadenas independiente de la Escritura en Mayúsculas o Minúsculas
Pregunta | 1 Respuesta
Java: IntToStr - Convertir Número entero String
Pregunta | 1 Respuesta
Programación de Android: Cuadro de Diálogo SÍ / NO
Consejo | 0 Comentarios
Programación de Android: Cerrar toda la Aplicación
Pregunta | 1 Respuesta
Aviso Importante
Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.
Participar
Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.
En Java/Android, una String es un objeto. Cuando se utiliza el operador "==", Java está comprobando si los dos objetos son idénticos y no si su contenido es idéntico. Debido a su ejemplo, los objetos "s1" y "s2" no son idénticos, asi que la condición de IF siempre regresa "false".
Para comparar el contenido de dos cadenas, puede usar el método .equals(Object obj) para su comparación:
String s1 = new String("abc"); String s2 = new String("abc"); String s3 = s1; if (s1.equals(s2)) { } // true if (s1 == s2) { } // false if (s1 == s3) { } // trueAdemás, en este ejemplo, he declarado la String s3 y la establece a s1. En este caso, en realidad, los objetos s1 y s3 son idénticos para que la condición con "==" sea "true" aquí.
16/04/2022 a las 20:41