Chaîne nulle et vide en Java

Mohammad Irfan 12 octobre 2023
  1. Utiliser la chaîne vide en Java
  2. Utiliser la chaîne nulle en Java
  3. Exemple de chaîne nulle et vide en Java
  4. Vérifiez Null et chaîne vide en utilisant la méthode equals() en Java
Chaîne nulle et vide en Java

Ce tutoriel discutera de la différence entre les chaînes null et vides en Java. Mais avant cela, nous allons comprendre la différence fondamentale entre les termes vide et null.

“Vide” est comme une boîte vide que nous pouvons utiliser selon nos besoins pour la remplir ou pour faire le nécessaire.

Null est comme un vide avec une propriété associée, en raison de laquelle nous ne pouvons le considérer ni comme vide ni comme plein.

En Java, une chaîne fait référence à la séquence de caractères. Par exemple, delftstack est une chaîne.

Nous voyons souvent les chaînes vides et nulles en Java. Beaucoup de gens pensent que les chaînes vides et nulles sont identiques, mais il existe une différence entre les chaînes nulles et vides.

Utiliser la chaîne vide en Java

String a = ""; // empty string

Ici a est une chaîne vide. Lorsque nous affectons la chaîne vide à la variable string, cela indique que la variable reference fait référence à un emplacement mémoire d’une chaîne dans un tas.

Une chaîne vide est une chaîne qui ne contient aucun caractère et dont la longueur est bien définie - la longueur est 0. Nous pouvons effectuer toutes les opérations de chaîne sur une chaîne vide.

On peut trouver sa longueur en utilisant la méthode length(), en connaissant l’index de certains caractères, etc.

Utiliser la chaîne nulle en Java

String b = null;

Ici b est une chaîne nulle. Lors de l’affectation de la valeur null à la variable chaîne, la variable de référence ne fait référence à aucun emplacement mémoire dans un tas.

La chaîne nulle signifie aucune chaîne du tout. Il n’a pas de longueur car ce n’est pas du tout une chaîne.

L’application de toute opération de chaîne standard à la chaîne nulle entraînera une exécution NullPointerException.

Exemple de chaîne nulle et vide en Java

Dans cet exemple, nous avons créé une String vide et une String nulle, puis nous avons vérifié leur fonctionnement avec la méthode length(). La chaîne nulle lève une exception alors que le vide ne le fait pas.

Voir l’exemple ci-dessous.

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());
    }
  }
}

Production:

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

Vérifiez Null et chaîne vide en utilisant la méthode equals() en Java

Nous avons utilisé la méthode equals() et l’opérateur equal == pour vérifier la chaîne vide et nulle dans cet exemple. L’expression a==b retournera false car "" et null n’occupent pas le même espace en mémoire.

En termes simples, nous pouvons dire que les variables ne pointent pas vers les mêmes objets. Le a.equals(b) renverra false car les valeurs de référence d’objet pointées par a et b ne correspondent pas.

Le b.equal(a) renverra NullPointerExpception car b pointe vers une référence obscure et aucune opération n’est autorisée.

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));
  }
}

Production:

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

Article connexe - Java String