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

C# Discussion :

Mettre en majuscule les premieres lettres d'un prenom compose


Sujet :

C#

  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut Mettre en majuscule les premieres lettres d'un prenom compose
    Bonjour,

    je souhaite mettre en majuscule les premières lettres d'un prénom compose en c#.
    je ne vois pas comment faire simplement

    merci de votre aide

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 95
    Points : 264
    Points
    264
    Par défaut
    Bonjour,

    Il y a plus simple et plus optimisé je pense, mais voilà un premier jet qui te permettra d'y voir plus clair... (je n'ai pas mis de contrôles sur les variables)

    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
            private String MettreEnMajusculePrenom(String prenom)
            {
                String[] ensemblePrenom = prenom.Split('-');
                StringBuilder stringBuilder = new StringBuilder();
     
                for (Int32 i = 0; i < ensemblePrenom.Length; i++)
                {
                    stringBuilder.Append(ensemblePrenom[i].Substring(0, 1).ToUpper() + ensemblePrenom[i].Substring(1));
     
                    if (i < ensemblePrenom.Length - 1)
                        stringBuilder.Append("-");
                }
     
                return stringBuilder.ToString();
            }

  3. #3
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    bonjour,

    merci pour cet exemple. le problème que je me pose c'est que je n'ai pas forcement un tiret comme séparateur de prénom , je peux avoir juste un espace voir peut être un autre séparateur.
    je cherche à utiliser une sorte expression régulières mais je ne vois pas comment faire

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 95
    Points : 264
    Points
    264
    Par défaut
    La méthode Split peut aussi prendre un tableau de char en paramètre, plutôt qu'un seul char comme je l'ai fait, donc cela pourrait répondre à ton besoin. Sinon, effectivement je pense que tu peux passer par une expression régulière.

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Avec une regex et le système d'écriture d'une culture spécifique :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var name = "jean dupond";
     
    var regex = new Regex("[a-zA-Z]+");
    foreach (var match in regex.Matches(name))
    {
    	var textInfo = new CultureInfo("fr-FR", false).TextInfo;
    	var nameWithTitleCase = textInfo.ToTitleCase(match.ToString());
     
    	Console.WriteLine(nameWithTitleCase);
    }
    Ca marche aussi avec la culture en-US...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    merci à vous j'essaie cela au plus vite

  7. #7
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    bonjour,

    j'ai un soucis avec les accents qui disparaissent cela doit venir de la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var regex = new Regex("[a-zA-Z]+");
    je ne vois pas trop comment les intégrer dans l'expression.

    et j'ai un autre soucis avec les textes en majuscule completement :

    La doc dit :
    Convertit la chaîne spécifiée en une initiale en majuscule (excepté pour les mots qui sont entièrement en majuscules, lesquels sont considérés comme des acronymes.).

    sinon cela fonctionne.

    merci de votre aide.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour,
    pour les accents, voir ici

  9. #9
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    bonjour,

    merci à vous j'ai mixé vos réponse pour faire ceci :

    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
    32
     
            /// <summary>
            /// Fonction pour 1ier lettre en majuscule
            /// ToTitleCase : Convertit la chaîne spécifiée en une initiale en majuscule (excepté pour les mots qui sont entièrement en majuscules, lesquels sont considérés comme des acronymes.).
            /// </summary>
            /// <param name="myvalue"></param>
            /// <returns></returns>
            private string initCap(string myvalue)
            {
                if (string.IsNullOrEmpty(myvalue)) myvalue = "";
     
                myvalue = myvalue.ToLower(); // on met en miscule par defaut 
     
                string new_myvalue = "";
     
                //if (myvalue.Length >= 2)
                //    new_myvalue = myvalue[0].ToString().ToUpper() + myvalue.Substring(1).ToLower();
                //else new_myvalue = myvalue;
     
                //var regex = new Regex("[a-zA-Z]+");
                string pattern = @"\w+";
                foreach (var match in  Regex.Matches (myvalue, pattern, RegexOptions.IgnoreCase)) //regex.Matches(myvalue))
                {
                    var textInfo = new CultureInfo("fr-FR", false).TextInfo;
                    if(new_myvalue=="")
                        new_myvalue = textInfo.ToTitleCase(match.ToString());            
                    else
                        new_myvalue = new_myvalue+" "+textInfo.ToTitleCase(match.ToString());         
                }
     
                return new_myvalue;
            }
    je permet les accents , les nombres.

    qu'en pensez vous ?

Discussions similaires

  1. mettre en majuscule la premiere lettre d'un mot
    Par teophane dans le forum Requêtes
    Réponses: 5
    Dernier message: 18/11/2011, 13h54
  2. Mettre en majuscule les premieres lettres d'un prenom compose
    Par rimbaut dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/04/2010, 13h55
  3. Réponses: 2
    Dernier message: 27/08/2009, 17h10
  4. Mettre en majuscule chaque premiere lettre
    Par andreditdd dans le forum Delphi
    Réponses: 12
    Dernier message: 02/04/2007, 14h12
  5. [RegEx] Mettre en majuscules les premières lettres accentuées
    Par Bibicmoi dans le forum Langage
    Réponses: 8
    Dernier message: 15/05/2006, 19h02

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