Salut a toutes & tous
J'aimerais écrire un programme qui capitalise la première de chaque mot dans une phrase
Merci!
Salut a toutes & tous
J'aimerais écrire un programme qui capitalise la première de chaque mot dans une phrase
Merci!
Salut,
Pour mettre en majuscule chaque première lettre d'un mot, il faut trouver ces lettres dans la chaîne.
- Soit on parcourt la chaîne et on cherche une caractéristique qui détermine que la lettre est la première d'un mot. La caractéristique en question est, en français, en version simple : si le caractère n'est pas précédée par une lettre, alors c'est la première d'un mot. On peut aussi simplifier en cherchant les caractères qui sont précédés par une espace.
- Soit on utilise une expression régulière qui détecte chaque première lettre de chaque mot.
- Soit on découpe la chaîne en mots, on parcourt les mots puis on reconstruit la chaîne, mais ça peut compliquer les choses si on souhaite respecter les espacements entre mot, parce que le découpage simple (par split()) ne conserve pas les séparateurs. On peut utiliser un StringTokenizer éventuellement
Il faudra tenir compte du cas particulier du premier caractère de la String, qui n'est pas précédé de quoique ce soit. Et éventuellement de tous les cas particuliers en fonction de comment on veut les traiter (cas de l'apostrophe, lettre après . dans un acronyme, etc).
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Je penche pour une approche 1 de joel.drigo mais à l'inverse de ce qu'il suggère. En effet, il est certainement plus simple de choisir la liste des caractères qui engendre une mise en majuscule que de chercher ce qui caractérise un mot.
Dans ce cas, on parcours la chaîne de caractères de la gauche vers la droite et si on détecte un de ces caractères, alors le suivant devra être mis en majuscule et ceci jusqu'au dernier caractère de la chaîne.
Si on ne prennait en compte que {" ", "'", "-", ".", ":", ";", ",", "?", "!", "\t", "\n" , "\r'"}, on serait déjà assez proche du résultat escompté...
(J'ai ajouté les caractères de ponctuation parce que si la phrase n'est pas dans la logique française qui veut qu'on mette un blanc derrière, les omettre pourrait poser problème...)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager