PIXEL FACEBOOK

¿Qué Método Es Mejor Para Comparar Una Cadena En Java?

programador

¿Qué Método Es Mejor Para Comparar Una Cadena En Java?

Metodos En JavaEn anteriores artículos he dado algunos ejemplos prácticos sobre una calculadora básica, calculadora de matriz y un formulario básico en Java, entre otros ejercicios. En estos ejemplos ha sido necesario aplicar algunas validaciones, entre estas, conocer si una cadena de texto esta vacía o no. Existen algunas maneras de comparar una cadena en Java de forma correcta.

El método length(), es la mejor manera de comprobar si la cadena está vacía o no. Este método simplemente devuelve el recuento de caracteres dentro de matriz de caracteres que constituye la cadena. Si el cuenta la longitud de la cadena, es decir, si el numero retornado es 0; se puede concluir con seguridad que la cadena está vacía.

1
2
3
4
5
6
7
8
9
public boolean isEmpty(String str)
{
    return str.equals("");        //Nunca hacer esto
}
 
public boolean isEmpty(String str)
{
    return str.length()==0;        //La forma correcta de comprobar si esta vacio
}

Si quieres saber la razón del por que la primera forma es la incorrecta, te invito a seguir leyendo 😉

Vamos a ver el código fuente de los dos métodos dentro de la clase String.java.

Método length()

1
2
3
public int length() {
    return count;
}

Método equals()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = count;
        if (n == anotherString.count) {
            char v1[] = value;
            char v2[] = anotherString.value;
            int i = offset;
            int j = anotherString.offset;
            while (n-- != 0) {
                if (v1[i++] != v2[j++])
                    return false;
            }
            return true;
        }
    }
    return false;
}

Análisis

Como se puede ver que el método length() es simplemente un método getter que devuelve el recuento de caracteres en forma de matriz. Así que prácticamente no desperdicia ciclos de CPU para calcular la longitud de la cadena. Y cualquier cadena con longitud 0 siempre va a ser una cadena vacía.

Mientras el método equals() toma un montón de declaraciones antes de concluir que la cadena está vacía. Hace verificación de referencia, encasillamiento si es necesario, crea matrices temporales y luego usa un ciclo while. Por lo tanto, toma una gran cantidad de ciclos de CPU para comprobar una simple condición.

A partir de la versión 6 de Java, la función isEmpty() está disponible en la propia clase String. También es recomendable hacer uso de esta función para implementar código con las mejores prácticas del lenguaje.

Artículos Relacionados

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Jenny Watson

Hi! beautiful people. I`m an authtor of this blog. Read our post – stay with us

Categorías

Artículos Relacionados

¡Descubre Hostinger, Crea tu Web y Empieza a Generar Presencia Online!

¿Buscas un hosting confiable y asequible para tu proyecto web? Hostinger te ofrece planes flexibles y potentes que se adaptan a tus necesidades. Desde sitios web personales hasta tiendas online, su tecnología de vanguardia garantiza un rendimiento excepcional.