Comparando Strings

Para comparar Strings, es recomendable usar (o más bien es lo que se debe usar) el método equals, pero es probable que nunca hayas usado una expresión como esta:



public static void main(String[] args) {
String a = "Hola";
if("".equals(a)) {
System.out.println("El String es vacío");
}
}


A decir verdad no tiene mucha gracia, sólo estamos llamando al método equals de la clase String, de un String que se encuentra entrecomillado pero esto tiene algunas ventajas, cómo por ejemplo crear un if para validar si una entrada del usuario es vacía, pero ¿Dónde está la ventaja?.

Bien si tuviesemos un String a y queremos ver que es vacío la comparación sería muy simple:




if(a.equals("") {
System.out.println("El String es vacio");
}

Pero también debemos validar que el String no sea null, ya que si por ejemplo lo estamos recuperando en un Servlet, si el parámetro no fue enviado, el String es null, entonces nuestra comparación debería quedar así:

if(a!=null && a.equals("")) {
System.out.println("El String es vacio");
}
Con está ultima modificación, asumiremos que el compilador es capaz de reconocer que si la primera condición se cumple, no ejecutará nada más y no arrojará un excepción, pero dado que eso sería asumir algo (que en realidad si lo hace así), la comparación deberá quedar algo así:

 public static void main(String[] args) {
String a = "Hola";
if(a!=null){
if(a.equals("") {
System.out.println("El String es vacío");
}
}

}
Sin embargo ese problema se puede resolver facilmente así:

public static void main(String[] args) {
String a = null;
if("".equals(a)) {
System.out.println("El String es vacío");
}
}

0 comments:

Post a Comment