IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

mettre des mots en majuscule


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    styliste
    Inscrit en
    Juillet 2020
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : styliste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2020
    Messages : 27
    Points : 20
    Points
    20
    Par défaut mettre des mots en majuscule
    Bonjour à tous !

    je suis un grand débutant en Java, je me teste sur des exercices tres simple de débutant, comme celui de saisir une phrase puis de mettre la première lettre de chaque mot en majuscule ! un classique j'imagine des tutos les plus simples

    je parviens à saisir ma pharse, puis à créer un tableau qui va stocker chacun des mots de cette phrase séparemment. apres ce que je ne réussi pas bien a faire c'est de passer cette premier lettre en majuscule. enfin j'y arrive isolemment, mais je n'arrive pas à réinjecter cette modification dans mon mot stocké dans le tableau.

    voici mon modeste code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    import java.util.Scanner;
     
    public class CapitalizeSentence {
     
    	public static void main(String[] args) {
     
    		//----saisie de la phrase à modifier
    		Scanner clavier = new Scanner(System.in);
    		System.out.print("ecrire une phrase : ");
    		String phrase = clavier.nextLine();
    		clavier.close();
     
    		//----découpage de la phrase en mots
    		String delimiter = " ";
    		String mots [] = phrase.split(delimiter);
     
     
    		//------mise en majuscule de la premiere lettre de chaque mot
     
     
    		for (int i = 0; i < mots.length; i++) {
     
    			char majuscule = Character.toUpperCase( mots[i].charAt(0) );
    			mots [i] += mots[i].replace(mots[i].charAt(0), majuscule);
    			System.out.print(mots[i]+ " ");
     
    		}
     
    	}
     
    }

  2. #2
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 681
    Points
    1 681
    Par défaut
    Bonjour,
    Déjà, bon point pour la boucle, le "i" est bien utilisé (de 0 à < taille), ce qui est souvent un piège (et pas que pour les débutants).

    Citation Envoyé par encoreUnDebutant Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      mots [i] += mots[i].replace(mots[i].charAt(0), majuscule);
    Le problème se pose sans doute sur cette ligne ?
    Le mot découpé au-dessus de la saisie est concaténé au résultat du replace. Or celui-ci va remplacer dans une copie du mot TOUS les caractères identiques au premier du mot par la version majuscule.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mot = "cochez" : mot.charAtr(0) : "c", majuscule = "C"
    mots[i].replace(mots[i].charAt(0), majuscule) => "CoChez"
    Comme on est samedi, j'ai pioché la réponse ici : https://stackoverflow.com/questions/...ing-using-java
    ça donne (réponse avec 545 avis favorables) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String output = input.substring(0, 1).toUpperCase() + input.substring(1);
    Et donc dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     mots[i] = mots [i].substring(0, 1).toUpperCase() + mots [i].substring(1);

  3. #3
    Membre à l'essai
    Homme Profil pro
    styliste
    Inscrit en
    Juillet 2020
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : styliste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2020
    Messages : 27
    Points : 20
    Points
    20
    Par défaut merci !!!
    top !! merci beaucoup c'est parfait !!

    j'avais essayé un peu la même chose dans un test précédent, mais avec un charAt(0).toUppercase au lieu de substring(0,1).toUppercase.

    évidemment je tentais de manipuler une chain de caractère avec charAt ca marchait pas ensemble

    milles mercis pour ton aide !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. obliger a mettre les premieres lettres des mots en Majuscule
    Par MADA BLACK dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/02/2016, 01h05
  2. Conversion des 1res lettres des mots en Majuscule
    Par tleboukaka dans le forum Bases de données
    Réponses: 2
    Dernier message: 05/08/2010, 14h29
  3. Recherche des mots en Majuscules
    Par Pierre67 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/07/2009, 08h48
  4. Mettre des mots sur un code
    Par isis1be dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/06/2008, 18h16
  5. Mettre la première lettre des mots en majuscule
    Par seb.49 dans le forum Langage
    Réponses: 8
    Dernier message: 23/05/2003, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo