80 votes

Meilleur moyen de convertir Pascal Case en une phrase

Quel est le meilleur moyen de convertir du Pascal Case (Camel Case supérieur) en une phrase.

Par exemple en commençant par

"AwaitingFeedback"

et en le convertissant en

"En attente de feedback"

C# de préférence mais je pourrais le convertir depuis Java ou similaire.

2 votes

Le camel case attendFeedback et non AwaitingFeedback (Pascal Case). De plus, ce que vous voulez faire n'est pas complètement possible. Que pensez-vous de désactiverGPS? Existe-t-il une solution suffisamment générale pour gérer ces cas?

0 votes

@kgiannakakis a modifié la question en conséquence. J'oublie toujours dans quel sens vont les noms, surtout avec les casse en Camel Case.

0voto

Binary Worrier Points 27424

Principalement déjà répondu ici

Petite modification à la réponse acceptée, pour convertir les lettres capitales suivantes en minuscules, donc changer

if (char.IsUpper(text[i]))                
    newText.Append(' ');            
newText.Append(text[i]);

à

if (char.IsUpper(text[i]))                
{
    newText.Append(' ');            
    newText.Append(char.ToLower(text[i]));
}
else
   newText.Append(text[i]);

0voto

juanora Points 221

Voici mon implémentation. C'est la plus rapide que j'ai obtenue tout en évitant de créer des espaces pour les abréviations.

public static string PascalCaseToSentence(string input)
    {
        if (string.IsNullOrEmpty(input) || input.Length < 2)
            return input;

        var sb = new char[input.Length + ((input.Length + 1) / 2)];
        var len = 0;
        var lastIsLower = false;
        for (int i = 0; i < input.Length; i++)
        {
            var current = input[i];
            if (current < 97)
            {
                if (lastIsLower)
                {
                    sb[len] = ' ';
                    len++;
                }
                lastIsLower = false;
            }
            else
            {
                lastIsLower = true;
            }
            sb[len] = current;

            len++;
        }

        return new string(sb, 0, len);
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X