Diese Methode konvertiert den String "Quelle" auf "schöne" Weise (= proper) in gemischte Groß-/Kleinschreibung. (Die Ursprungsidee habe ich von AnsiProperCase der Rx-Tools übernommen.)
1. Das erste Zeichen wird immer groß geschrieben.
2. Alle anderen Zeichen werden klein geschrieben.
3. Jeweils der erste Buchstabe nach einem Trennzeichen wird groß geschrieben.
4. Die Liste der Trennzeichen kann automatisch vorgegeben oder manuell gesetzt werden.
Beispiel: Bezeichner aus Importdateien, die nur Großbuchstaben kennen, werden angepasst.
using System.Text;
// erste Version: Standardtrenner
string ProperCase(string Quelle) {
return ProperCase(Quelle, " .,-_");
}
// zweite Version: variable Trenner
string ProperCase(string Quelle, string Trenner) {
char[] cTrenner = Trenner.ToCharArray();
int i1 = 1, i2 = 0, iL = Quelle.Length;
// Standard: Anfangszeichen groß, alles andere klein
StringBuilder Result = new StringBuilder(iL);
Result.Append( Char.ToUpper(Quelle[0]) );
Result.Append( Quelle.Substring(1).ToLower() );
// speziell: nach allen Sonderzeichen folgt ein Großbuchstabe
i2 = Quelle.IndexOfAny(cTrenner, i1);
while( (i2+1 < iL) && (i2 >= i1) && Char.IsLetter(Result[i2+1]) ) {
Result[i2+1] = Char.ToUpper(Result[i2+1]);
i1 = i2+1;
// suche weitere Trennzeichen
i2 = Quelle.IndexOfAny(cTrenner, i1);
}
// Rückgabe als String
return Result.ToString();
}
Kommentare zum Snippet