J'ai besoin d'une fonction qui prendra une chaîne et "cas pascal". Le seul indicateur qu'un nouveau mot commence est un trait de soulignement. Voici quelques exemples de chaînes qui doivent être assainis:Fonction pour faire un cas Pascal? (C#)
- price_old => Devrait être PriceOld
- rank_old => Devrait être RankOld
j'ai commencé à travailler sur une fonction qui rend le premier caractère majuscules:
public string FirstCharacterUpper(string value)
{
if (value == null || value.Length == 0)
return string.Empty;
if (value.Length == 1)
return value.ToUpper();
var firstChar = value.Substring(0, 1).ToUpper();
return firstChar + value.Substring(1, value.Length - 1);
}
la chose la fonction ci-dessus ne fait pas le trait de soulignement est et enlever « ToUpper » le caractère à droite du trait de soulignement.
Aussi, toutes les idées sur la façon de pascal d'une chaîne qui n'a pas d'indicateurs (comme le trait de soulignement). Par exemple:
- companysource
- financialtrend
- accountingchangetype
Le principal défi ici consiste à déterminer où se termine mot et un autre commence. Je suppose que j'aurais besoin d'une sorte de dictionnaire de recherche pour déterminer où les nouveaux mots commencent? Existe-t-il des bibliothèques pour faire ce genre de chose?
Merci,
Paul
Un commentaire rapide - c'est le cas Pascal. L'étui à chameaux commence par une minuscule, par ex. 'rankOld'. –
@Jon O, bon à savoir ... mise à jour ... –
Un autre commentaire rapide - il n'est pas nécessaire de spécifier une longueur quand vous voulez que la sous-chaîne entière soit à partir d'un certain point de départ. Donc, au lieu de value.Substring (1, value.Length - 1) vous pouvez simplement faire value.Substring (1). – Anton