Ich habe eine Textfolge (meistens ca. 5-6 Wörter), die ich konvertieren muss.
Derzeit sieht der Text so aus:
THIS IS MY TEXT RIGHT NOW
Ich möchte es konvertieren in:
This Is My Text Right Now
Ich kann meine Sammlung von Zeichenfolgen durchlaufen, bin mir aber nicht sicher, wie ich diese Textänderung durchführen soll.
Ich ziehe es wahrscheinlich vor, ToTitleCase von CultureInfo ( System.Globalization ) aus aufzurufen als Thread.CurrentThread ( System.Threading )
aber es sollte das gleiche sein wie jspcal Lösung
BEARBEITEN
Eigentlich sind diese Lösungen nicht die gleichen :
CurrentThread
--calls ->CultureInfo
!System.Threading.Thread.CurrentThread.CurrentCulture
System.Globalization.CultureInfo.CurrentCulture
Verweise:
quelle
Es gibt verschiedene Möglichkeiten, das erste Zeichen eines Strings in Großbuchstaben umzuwandeln.
Die erste Möglichkeit besteht darin, eine Methode zu erstellen, die einfach das erste Zeichen begrenzt und den Rest der Zeichenfolge mithilfe eines Teilstrings anfügt:
Die zweite Möglichkeit (die etwas schneller ist) besteht darin, die Zeichenfolge in ein char-Array aufzuteilen und die Zeichenfolge dann neu zu erstellen:
quelle
Ungetestet, aber so etwas sollte funktionieren:
Im Wesentlichen heißt es: "Führen Sie eine Regex-Übereinstimmung für alle Vorkommen eines alphanumerischen Zeichens durch, das auf ein anderes alphanumerisches Zeichen folgt, und ersetzen Sie es dann durch eine Kleinbuchstabenversion von sich selbst."
quelle
Wenn Sie auf einer Webseite verwenden, können Sie auch CSS verwenden:
style="text-transform:capitalize;"
quelle
ASP.NET
zeigt an, dass das OP dies im WEB tut. Dies ist natürlich nicht die Antwort auf die Frage, da OP die Lösung benötigt,C#
aber es löst das Problem und kann eine alternative Lösung sein. +1Beim Erstellen großer Tische ist Geschwindigkeit ein Problem, daher ist Jamie Dixons zweite Funktion am besten, aber sie funktioniert nicht vollständig wie sie ist ...
Es werden nicht alle Buchstaben in Kleinbuchstaben geschrieben, und es wird nur der erste Buchstabe der Zeichenfolge großgeschrieben, nicht der erste Buchstabe jedes Wortes in der Zeichenfolge. Die folgende Option behebt beide Probleme:
Obwohl zu diesem Zeitpunkt ungewiss ist, ob dies immer noch die schnellste Option ist, könnte die
Regex
von George Mauer bereitgestellte Lösung schneller sein ... jemand, der sich genug darum kümmert, sollte sie testen.quelle
Ich weiß nicht, ob die unten stehende Lösung mehr oder weniger effizient ist als die Antwort von jspcal, aber ich bin mir ziemlich sicher, dass sie weniger Objekterstellung erfordert als die von Jamie und George.
quelle
Denken Sie zusätzlich zur ersten Antwort daran, den Startindex für die Zeichenfolgenauswahl an das Ende des Wortes zu ändern. Andernfalls wird die Reihenfolge der Buchstaben in der Zeichenfolge in umgekehrter Reihenfolge angezeigt.
quelle
Versuchen Sie diese Technik; Es gibt das gewünschte Ergebnis zurück
Und vergessen Sie nicht zu verwenden
System.Globalization
.quelle
Eine der möglichen Lösungen, an denen Sie interessiert sein könnten. Durchlaufen einer Reihe von Zeichen von rechts nach links und umgekehrt in einer Schleife.
quelle
Die Antwort von jspcal als String-Erweiterung.
Program.cs
StringExtensions.cs
quelle