Test avec des espaces et des tabulations
Dans l'étape précédente, nous avons utilisé Character.isWhitespace()
avec un seul espace et un seul caractère de tabulation. Dans cette étape, nous allons tester davantage la méthode avec des chaînes de caractères contenant plusieurs espaces et tabulations pour voir comment elle se comporte.
N'oubliez pas que Character.isWhitespace()
fonctionne sur des caractères individuels, pas sur des chaînes entières. Pour vérifier si une chaîne ne contient que des espaces blancs, ou pour traiter les espaces blancs dans une chaîne, vous devriez généralement parcourir la chaîne caractère par caractère et appliquer la méthode isWhitespace()
à chacun d'eux.
Modifions notre fichier WhitespaceChecker.java
pour inclure des tests avec plusieurs espaces et tabulations.
-
Ouvrez le fichier WhitespaceChecker.java
dans l'éditeur du WebIDE.
-
Remplacez le code existant par le code mis à jour suivant :
public class WhitespaceChecker {
public static void main(String[] args) {
char space = ' ';
char tab = '\t';
char newline = '\n';
char letter = 'a';
char digit = '1';
System.out.println("Is '" + space + "' whitespace? " + Character.isWhitespace(space));
System.out.println("Is '" + tab + "' whitespace? " + Character.isWhitespace(tab));
System.out.println("Is '" + newline + "' whitespace? " + Character.isWhitespace(newline));
System.out.println("Is '" + letter + "' whitespace? " + Character.isWhitespace(letter));
System.out.println("Is '" + digit + "' whitespace? " + Character.isWhitespace(digit));
System.out.println("\nTesting with multiple characters:");
String testString1 = " "; // Three spaces
String testString2 = "\t\t"; // Two tabs
String testString3 = " \t "; // Spaces and tabs
String testString4 = "Hello World"; // Contains space, but also letters
System.out.println("Checking characters in: \"" + testString1 + "\"");
for (int i = 0; i < testString1.length(); i++) {
char c = testString1.charAt(i);
System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
}
System.out.println("Checking characters in: \"" + testString2 + "\"");
for (int i = 0; i < testString2.length(); i++) {
char c = testString2.charAt(i);
System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
}
System.out.println("Checking characters in: \"" + testString3 + "\"");
for (int i = 0; i < testString3.length(); i++) {
char c = testString3.charAt(i);
System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
}
System.out.println("Checking characters in: \"" + testString4 + "\"");
for (int i = 0; i < testString4.length(); i++) {
char c = testString4.charAt(i);
System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
}
}
}
Voici une analyse du nouveau code :
String testString1 = " ";
: Nous créons une chaîne avec trois caractères d'espace.
String testString2 = "\t\t";
: Nous créons une chaîne avec deux caractères de tabulation.
String testString3 = " \t ";
: Nous créons une chaîne avec un mélange d'espaces et de tabulations.
String testString4 = "Hello World";
: Nous créons une chaîne avec des lettres et un espace.
for (int i = 0; i < testString1.length(); i++)
: Il s'agit d'une boucle for
qui parcourt chaque caractère de la chaîne.
char c = testString1.charAt(i);
: À l'intérieur de la boucle, charAt(i)
récupère le caractère à l'index actuel i
et le stocke dans la variable c
.
System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
: Cette ligne affiche si le caractère actuel c
est un espace blanc en utilisant Character.isWhitespace(c)
. La partie (c == ' ' ? " " : (c == '\t' ? "\\t" : c))
est un opérateur ternaire utilisé pour afficher une représentation visible des caractères d'espace et de tabulation dans la sortie.
-
Enregistrez le fichier WhitespaceChecker.java
.
Maintenant, compilons et exécutons le programme mis à jour.
-
Ouvrez le terminal en bas du WebIDE. Assurez-vous d'être dans le répertoire ~/project
.
-
Compilez le programme Java :
javac WhitespaceChecker.java
-
Exécutez le programme Java compilé :
java WhitespaceChecker
Vous devriez voir une sortie similaire à celle-ci, y compris les résultats pour chaque caractère dans les chaînes de test :
Is ' ' whitespace? true
Is ' ' whitespace? true
Is '
' whitespace? true
Is 'a' whitespace? false
Is '1' whitespace? false
Testing with multiple characters:
Checking characters in: " "
Is ' ' whitespace? true
Is ' ' whitespace? true
Is ' ' whitespace? true
Checking characters in: " "
Is '\t' whitespace? true
Is '\t' whitespace? true
Checking characters in: " "
Is ' ' whitespace? true
Is ' ' whitespace? true
Is '\t' whitespace? true
Is ' ' whitespace? true
Is ' ' whitespace? true
Checking characters in: "Hello World"
Is 'H' whitespace? false
Is 'e' whitespace? false
Is 'l' whitespace? false
Is 'l' whitespace? false
Is 'o' whitespace? false
Is ' ' whitespace? true
Is 'W' whitespace? false
Is 'o' whitespace? false
Is 'r' whitespace? false
Is 'l' whitespace? false
Is 'd' whitespace? false
Cette sortie confirme que Character.isWhitespace()
identifie correctement les caractères d'espace et de tabulation individuels dans les chaînes, même lorsqu'ils apparaissent consécutivement ou mélangés avec d'autres caractères.
Vous avez testé avec succès Character.isWhitespace()
avec des chaînes contenant plusieurs espaces et tabulations en parcourant les caractères. Dans l'étape suivante, nous verrons comment la méthode gère les caractères non blancs.