Tengo una cadena de texto (alrededor de 5-6 palabras en su mayoría) que necesito convertir.
Actualmente el texto se ve así:
THIS IS MY TEXT RIGHT NOW
Quiero convertirlo a:
This Is My Text Right Now
Puedo recorrer mi colección de cadenas, pero no estoy seguro de cómo realizar esta modificación de texto.
Probablemente prefiera invocar ToTitleCase de CultureInfo ( System.Globalization ) que Thread.CurrentThread ( System.Threading )
pero debería ser lo mismo que la solución jspcal
EDITAR
En realidad, esas soluciones no son las mismas :
CurrentThread
--llama ->CultureInfo
!System.Threading.Thread.CurrentThread.CurrentCulture
System.Globalization.CultureInfo.CurrentCulture
Referencias:
fuente
Hay un par de formas de convertir el primer carácter de una cadena a mayúsculas.
La primera forma es crear un método que simplemente limite el primer carácter y agregue el resto de la cadena usando una subcadena:
La segunda forma (que es un poco más rápida) es dividir la cadena en una matriz de caracteres y luego reconstruir la cadena:
fuente
No probado, pero algo como esto debería funcionar:
Básicamente, dice "preformar una coincidencia de expresiones regulares en todas las apariciones de un carácter alfanumérico que siga a otro carácter alfanumérico y luego reemplazarlo con una versión en minúscula de sí mismo".
fuente
Si está utilizando en una página web, también puede utilizar CSS:
style="text-transform:capitalize;"
fuente
ASP.NET
muestra que el OP lo está haciendo en WEB. Por supuesto, esta no es la respuesta a la pregunta porque OP requería la solución,C#
pero resuelve el problema y puede ser una solución alternativa. +1Al construir mesas grandes, la velocidad es una preocupación, por lo que la segunda función de Jamie Dixon es la mejor, pero no funciona completamente como está ...
No toma todas las letras en minúsculas, y solo escribe en mayúscula la primera letra de la cadena, no la primera letra de cada palabra en la cadena ... la siguiente opción soluciona ambos problemas:
Aunque en este punto, no se sabe si esta sigue siendo la opción más rápida, la
Regex
solución proporcionada por George Mauer podría ser más rápida ... alguien que se preocupe lo suficiente debería probarla.fuente
No sé si la solución a continuación es más o menos eficiente que la respuesta de jspcal, pero estoy bastante seguro de que requiere menos creación de objetos que la de Jamie y George.
fuente
Además de la primera respuesta, recuerde cambiar el índice de inicio de selección de cadena al final de la palabra o obtendrá el orden inverso de las letras en la cadena.
fuente
Pruebe esta técnica; Devuelve el resultado deseado
Y no olvides usar
System.Globalization
.fuente
Una de las posibles soluciones que podría interesarle. Atravesar una matriz de caracteres de derecha a izquierda y viceversa en un bucle.
fuente
La respuesta de jspcal como una extensión de cadena.
Program.cs
StringExtensions.cs
fuente