Cadena nula y vacía en Java

Mohammad Irfan 12 octubre 2023
  1. Usar la cadena vacía en Java
  2. Usar la cadena nula en Java
  3. Ejemplo de cadena nula y vacía en Java
  4. Verifique la cadena nula y vacía usando el método equals() en Java
Cadena nula y vacía en Java

Este tutorial discutirá la diferencia entre cadenas null y vacías en Java. Pero antes de eso, entenderemos la diferencia básica entre los términos vacío y null.

‘Vacío’ es como una caja vacía que podemos usar según nuestra necesidad para llenarla o hacer lo necesario.

Null es como un vacío con alguna propiedad asociada, por lo que no podemos considerarlo ni vacío ni lleno.

En Java, una cadena se refiere a la secuencia de caracteres. Por ejemplo, delftstack es una cadena.

A menudo vemos las cadenas vacías y nulas en Java. Mucha gente piensa que tanto las cadenas vacías como las nulas son iguales, pero hay una diferencia entre las cadenas nulas y las vacías.

Usar la cadena vacía en Java

String a = ""; // empty string

Aquí a es una cadena vacía. Cuando asignamos la cadena vacía a la variable cadena, indica que la variable referencia se refiere a una ubicación de memoria de una cadena en un montón.

Una cadena vacía es una cadena que no tiene caracteres y tiene una longitud bien definida - la longitud es 0. Podemos realizar todas las operaciones de cadena en una cadena vacía.

Podemos encontrar su longitud utilizando el método length(), averiguando el índice de algunos caracteres, etc.

Usar la cadena nula en Java

String b = null;

Aquí b es una cadena nula. Al asignar el nulo a la variable de cadena, la variable de referencia no hace referencia a ninguna ubicación de memoria en un montón.

La cadena nula significa que no hay ninguna cadena. No tiene una longitud porque no es una cadena en absoluto.

La aplicación de cualquier operación de cadena estándar a la cadena nula provocará un tiempo de ejecución NullPointerException.

Ejemplo de cadena nula y vacía en Java

En este ejemplo, creamos un String vacío y uno nulo, y luego verificamos su funcionamiento con el método length(). La cadena nula lanza una excepción mientras que la vacía no.

Vea el ejemplo a continuación.

public class SimpleTesting {
  public static void main(String[] args) {
    // empty string
    String a = "";
    // null string
    String b = null;

    // printing length of empty string
    System.out.println("length a = " + a.length());

    // this piece of code will still throw nullpointerexception .*
    if (b != "") {
      // printing length of null string
      System.out.println("length b =" + b.length());
    }
  }
}

Producción :

length a = 0
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "<local2>" is null
        at SimpleTesting.main(SimpleTesting.java:15)

Verifique la cadena nula y vacía usando el método equals() en Java

Usamos el método equals() y el operador equal == para verificar la cadena vacía y nula en este ejemplo. La expresión a==b devolverá false porque "" y null no ocupan el mismo espacio en la memoria.

En palabras simples, podemos decir que las variables no apuntan a los mismos objetos. El a.equals(b) devolverá false porque los valores de referencia del objeto señalados por a y b no coinciden.

El b.equal(a) devolverá NullPointerExpception porque b apunta a una referencia oscura y no se permite ninguna operación.

public class SimpleTesting {
  public static void main(String[] args) {
    // empty string
    String a = "";
    // null string
    String b = null;
    System.out.println(a == b);
    System.out.println(a.equals(b));
    System.out.println(b.equals(a));
  }
}

Producción :

false
false
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "<local2>" is null
        at SimpleTesting.main(SimpleTesting.java:13)

Artículo relacionado - Java String