Necesito una función que tomará una cadena y la "caja pascal". El único indicador de que una nueva palabra comienza es un guión bajo. Aquí están algunas cadenas de ejemplo que deben ser saneados:Función para hacer Pascal Case? (C#)
- price_old => Debe ser PriceOld
- rank_old => Debe ser RankOld
empecé a trabajar en una función que hace que el primer carácter mayúscula:
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);
}
lo de la función anterior no hacer es quitar el subrayado y "ToUpper" el carácter situado a la derecha del guión.
Además, cualquier idea sobre cómo pasar el caso de una cadena que no tiene ningún indicador (como el guión bajo). Por ejemplo:
- companysource
- financialtrend
- accountingchangetype
, el principal problema es determinar dónde termina una palabra y empieza otro. Supongo que necesitaría algún tipo de diccionario de búsqueda para determinar dónde comienzan las palabras nuevas. ¿Ya hay bibliotecas para hacer este tipo de cosas?
Gracias,
Paul
Un comentario rápido - que es el caso de Pascal. El estuche Camel comienza con una minúscula, p. 'rankOld'. –
@Jon O, es bueno saber ... actualizar ... –
Otro comentario rápido: no es necesario especificar una longitud cuando desea que toda la subcadena se encuentre en un determinado punto de inicio. Entonces, en lugar de value.Substring (1, value.Length - 1) simplemente puede hacer value.Substring (1). – Anton