Chaîne nulle et vide en Java
- Utiliser la chaîne vide en Java
- Utiliser la chaîne nulle en Java
- Exemple de chaîne nulle et vide en Java
-
Vérifiez Null et chaîne vide en utilisant la méthode
equals()
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)