Ignorer les caractères non alphabétiques
Dans l'étape précédente, nous avons vu que Character.isUpperCase() renvoie false pour les caractères qui ne sont pas des lettres, comme les espaces et les chiffres. Souvent, lors de l'analyse d'un texte, nous ne sommes intéressés que par les lettres et souhaitons ignorer les autres caractères.
La classe Character fournit une autre méthode utile, Character.isLetter(), qui renvoie true si un caractère est une lettre (que ce soit une majuscule ou une minuscule), et false dans le cas contraire. Nous pouvons combiner Character.isLetter() et Character.isUpperCase() pour vérifier si un caractère est une lettre majuscule et ignorer les caractères non alphabétiques.
Modifions notre programme pour compter le nombre de lettres majuscules dans la chaîne, en ignorant les espaces, les chiffres et les autres caractères non alphabétiques.
-
Ouvrez le fichier HelloJava.java dans l'éditeur WebIDE.
-
Remplacez le code existant par le suivant :
public class HelloJava {
public static void main(String[] args) {
String testString = "Hello Java 123";
int uppercaseCount = 0;
System.out.println("Counting uppercase letters in the string: \"" + testString + "\"");
for (int i = 0; i < testString.length(); i++) {
char currentChar = testString.charAt(i);
// Check if the character is a letter AND if it is uppercase
if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar)) {
uppercaseCount++;
System.out.println("Found uppercase letter: '" + currentChar + "' at index " + i);
}
}
System.out.println("Total uppercase letters found: " + uppercaseCount);
}
}
Dans ce code :
- Nous initialisons une variable entière
uppercaseCount à 0.
- À l'intérieur de la boucle, nous ajoutons une condition
if : if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar)). L'opérateur && signifie "et". Cette condition est vraie seulement si Character.isLetter(currentChar) est vraie et Character.isUpperCase(currentChar) est vraie.
- Si la condition est vraie, nous incrémentons
uppercaseCount et affichons un message indiquant qu'une lettre majuscule a été trouvée.
- Après que la boucle se termine, nous affichons le nombre total de lettres majuscules.
-
Enregistrez le fichier (Ctrl+S ou Cmd+S).
-
Compilez le programme dans le terminal :
javac HelloJava.java
-
Exécutez le programme compilé :
java HelloJava
Vous devriez voir une sortie similaire à ceci :
Counting uppercase letters in the string: "Hello Java 123"
Found uppercase letter: 'H' at index 0
Found uppercase letter: 'J' at index 6
Total uppercase letters found: 2
Cette sortie montre que notre programme a correctement identifié et compté seulement les lettres majuscules ('H' et 'J'), en ignorant les lettres minuscules, les espaces et les chiffres.