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
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
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(); }
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
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.
Avec une regex et le système d'écriture d'une culture spécifique :
Ca marche aussi avec la culture en-US...
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); }
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.
merci à vous j'essaie cela au plus vite
bonjour,
j'ai un soucis avec les accents qui disparaissent cela doit venir de la :
je ne vois pas trop comment les intégrer dans l'expression.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var regex = new Regex("[a-zA-Z]+");
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.
Bonjour,
pour les accents, voir ici
bonjour,
merci à vous j'ai mixé vos réponse pour faire ceci :
je permet les accents , les nombres.
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; }
qu'en pensez vous ?
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