Ich brauche eine Funktion, die eine Zeichenfolge und "Pascal Case" es nehmen wird. Der einzige Hinweis darauf, dass ein neues Wort beginnt, ist ein Unterstrich. Hier sind einige Beispiel-Strings, die gereinigt werden müssen:Funktion Pascal Fall zu machen? (C#)
- price_old => Sollte PriceOld
- rank_old = werden> RankOld werden sollte
Ich begann auf einer Funktion arbeiten, die das erste Zeichen macht Großbuchstaben:
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);
}
die Sache die obige Funktion nicht tun, ist es, den Unterstrich und „ToUpper“ das Zeichen rechts von dem Unterstrich entfernen.
Auch irgendwelche Ideen darüber, wie man eine Zeichenfolge pascal, die keine Indikatoren (wie der Unterstrich) hat. Zum Beispiel:
- companysource
- financialtrend
- accountingchangetype
Die große Herausforderung hier ist die Bestimmung, wo ein Wort endet und eine andere beginnt. Ich denke, ich würde ein Nachschlagewörterbuch benötigen, um zu bestimmen, wo neue Wörter anfangen? Gibt es da Bibliotheken, die solche Dinge schon tun?
Danke,
Paul
Eine kurze Bemerkung eine nicht regex Lösung braucht - das ist Pascal Fall. Der Kamelfall beginnt mit einem Kleinbuchstaben, z. 'rankOld'. –
@ Jon O, gut zu wissen ... updating ... –
Ein weiterer schneller Kommentar - es ist nicht notwendig, eine Länge anzugeben, wenn Sie den gesamten Teilstring von einem bestimmten Startpunkt wollen. Also statt value.Substring (1, value.Length - 1) kannst du einfach value.Substring (1) machen. – Anton