J'ai une chaîne de texte (environ 5 à 6 mots principalement) que je dois convertir.
Actuellement, le texte ressemble à:
THIS IS MY TEXT RIGHT NOW
Je veux le convertir en:
This Is My Text Right Now
Je peux parcourir ma collection de chaînes, mais je ne sais pas comment procéder pour effectuer cette modification de texte.
Je préfère probablement appeler le ToTitleCase de CultureInfo ( System.Globalization ) que Thread.CurrentThread ( System.Threading )
mais cela devrait être la même chose que la solution jspcal
ÉDITER
En fait, ces solutions ne sont pas les mêmes :
CurrentThread
--calls ->CultureInfo
!System.Threading.Thread.CurrentThread.CurrentCulture
System.Globalization.CultureInfo.CurrentCulture
Références:
la source
Il existe plusieurs façons de convertir le premier caractère d'une chaîne en majuscules.
La première méthode consiste à créer une méthode qui met simplement le premier caractère en majuscule et ajoute le reste de la chaîne à l'aide d'une sous-chaîne:
La deuxième méthode (qui est légèrement plus rapide) consiste à diviser la chaîne en un tableau de caractères, puis à reconstruire la chaîne:
la source
Non testé mais quelque chose comme ça devrait fonctionner:
Essentiellement, il dit "préformer une correspondance regex sur toutes les occurrences d'un caractère alphanumérique qui suit un autre caractère alphanumérique, puis le remplacer par une version minuscule de lui-même"
la source
Si vous utilisez sur une page Web, vous pouvez également utiliser CSS:
style="text-transform:capitalize;"
la source
ASP.NET
montre que l'OP le fait sur WEB. Bien sûr, ce n'est pas la réponse à la question car OP exigeait la solutionC#
mais cela résout le problème et peut être une solution alternative. +1Lorsque la construction de grandes tables est un problème, la deuxième fonction de Jamie Dixon est la meilleure, mais elle ne fonctionne pas complètement telle quelle ...
Il ne parvient pas à mettre toutes les lettres en minuscules et ne met en majuscule que la première lettre de la chaîne, pas la première lettre de chaque mot de la chaîne ... l'option ci-dessous résout les deux problèmes:
Bien qu'à ce stade, il n'est pas certain que ce soit toujours l'option la plus rapide, la
Regex
solution fournie par George Mauer pourrait être plus rapide ... quelqu'un qui s'en soucie suffisamment devrait la tester.la source
Je ne sais pas si la solution ci-dessous est plus ou moins efficace que la réponse de jspcal, mais je suis presque sûr qu'elle nécessite moins de création d'objet que celle de Jamie et George.
la source
En plus de la première réponse, n'oubliez pas de modifier l'index de démarrage de la sélection de chaîne à la fin du mot ou vous obtiendrez l'ordre inverse des lettres dans la chaîne.
la source
Essayez cette technique; Il renvoie le résultat souhaité
Et n'oubliez pas de l'utiliser
System.Globalization
.la source
Une des solutions possibles qui pourrait vous intéresser. Traverser un tableau de caractères de droite à gauche et vice versa dans une boucle.
la source
réponse de jspcal comme extension de chaîne.
Program.cs
StringExtensions.cs
la source