programmation Java (école d'ingénieur) · Chapitre 6 · Exercice de TD
Une majuscule à chaque mot
Chaînes de caractères et entrées · niveau 2
Énoncé
Écrire static String capitaliser(String phrase) qui met en majuscule la première lettre de chaque mot et en minuscules les autres : "le PETIT prince" donne "Le Petit Prince". Les espaces doivent être conservés tels quels. Que donne la méthode sur un mot composé comme saint-exupéry ?
Corrigé
On parcourt la phrase en retenant, dans un booléen, si l'on est au début d'un mot.
static String capitaliser(String phrase) {
StringBuilder sb = new StringBuilder();
boolean debutDeMot = true;
for (int i = 0; i < phrase.length(); i++) {
char c = phrase.charAt(i);
if (c == ' ') {
debutDeMot = true;
sb.append(c);
} else if (debutDeMot) {
sb.append(Character.toUpperCase(c));
debutDeMot = false;
} else {
sb.append(Character.toLowerCase(c));
}
}
return sb.toString();
}
L'appel capitaliser("le PETIT prince de saint-exupéry") retourne :
Le Petit Prince De Saint-exupéry
Seul l'espace marque un début de mot. Pour obtenir Saint-Exupéry, il suffit de traiter le tiret comme l'espace (c == ' ' || c == '-').
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.