Combinaison des vérifications de nullité et de chaîne vide
Dans l'étape précédente, nous avons appris à vérifier si une chaîne de caractères est null
. Cependant, dans de nombreux cas pratiques, vous devrez peut-être également vérifier si une chaîne de caractères est vide (ne contient aucun caractère) ou ne contient que des espaces blancs. Une chaîne de caractères qui est null
, vide ou ne contient que des espaces blancs est souvent considérée comme "vide" ou "effectivement vide".
Vérifier à la fois la nullité et la vacuité d'une chaîne de caractères est une exigence courante. Vous pouvez combiner ces vérifications en utilisant l'opérateur logique OU (||
).
Modifions notre programme précédent pour inclure des vérifications à la fois de la nullité et de la vacuité des chaînes de caractères.
-
Ouvrez le fichier NullCheck.java
dans l'éditeur du WebIDE.
-
Modifiez la méthode main
pour inclure une chaîne de caractères vide et combiner les vérifications. Remplacez la méthode main
existante par le code suivant :
public class NullCheck {
public static void main(String[] args) {
String myString1 = "Hello";
String myString2 = null;
String myString3 = ""; // This is an empty string
String myString4 = " "; // This string contains only whitespace
System.out.println("Checking myString1:");
if (myString1 == null || myString1.isEmpty()) {
System.out.println("myString1 is null or empty");
} else {
System.out.println("myString1 is not null and not empty");
}
System.out.println("\nChecking myString2:");
if (myString2 == null || myString2.isEmpty()) {
System.out.println("myString2 is null or empty");
} else {
System.out.println("myString2 is not null and not empty");
}
System.out.println("\nChecking myString3:");
if (myString3 == null || myString3.isEmpty()) {
System.out.println("myString3 is null or empty");
} else {
System.out.println("myString3 is not null and not empty");
}
System.out.println("\nChecking myString4:");
// Note: isEmpty() does not check for whitespace
if (myString4 == null || myString4.isEmpty()) {
System.out.println("myString4 is null or empty");
} else {
System.out.println("myString4 is not null and not empty");
}
}
}
Dans ce code mis à jour :
- Nous avons ajouté
myString4
qui ne contient que des espaces blancs.
- Nous utilisons la condition
myString == null || myString.isEmpty()
pour vérifier si une chaîne de caractères est soit null
, soit vide. La méthode isEmpty()
est une méthode intégrée de la classe String
qui renvoie true
si la chaîne de caractères a une longueur de 0.
- Important : La méthode
isEmpty()
ne peut être appelée que sur une chaîne de caractères non nulle. Si vous essayez d'appeler isEmpty()
sur une chaîne de caractères null
, vous obtiendrez une NullPointerException
. Par conséquent, il est crucial de vérifier d'abord la nullité en utilisant myString == null
avant d'appeler myString.isEmpty()
. L'opérateur logique OU (||
) est "court-circuité", ce qui signifie que si la première condition (myString == null
) est vraie, la deuxième condition (myString.isEmpty()
) n'est pas évaluée, évitant ainsi la NullPointerException
.
-
Enregistrez le fichier NullCheck.java
.
-
Compilez le programme modifié dans le terminal :
javac NullCheck.java
-
Exécutez le programme compilé :
java NullCheck
Vous devriez voir une sortie similaire à ceci :
Checking myString1:
myString1 is not null and not empty
Checking myString2:
myString2 is null or empty
Checking myString3:
myString3 is null or empty
Checking myString4:
myString4 is not null and not empty
Notez que myString4
(qui ne contient que des espaces blancs) est considérée comme "non nulle et non vide" par cette vérification. Si vous devez également considérer les chaînes de caractères ne contenant que des espaces blancs comme "vides", vous pouvez utiliser la méthode isBlank()
(disponible depuis Java 11).
Mettons rapidement à jour le code pour utiliser isBlank()
pour myString4
:
-
Modifiez la vérification pour myString4
dans NullCheck.java
:
// ... (previous code) ...
System.out.println("\nChecking myString4 with isBlank():");
if (myString4 == null || myString4.isBlank()) {
System.out.println("myString4 is null or blank");
} else {
System.out.println("myString4 is not null and not blank");
}
}
}
-
Enregistrez le fichier, compilez-le et exécutez-le à nouveau :
javac NullCheck.java
java NullCheck
La sortie pour myString4
devrait maintenant être :
Checking myString4 with isBlank():
myString4 is null or blank
Cela démontre comment combiner les vérifications de nullité et de chaîne vide/ne contenant que des espaces blancs, ce qui est un modèle très courant en programmation Java.