totitlecase first convert camelcase c# camelcasing tolower title-case

first - Convertir cadena a camelCase de TitleCase C#



first letter uppercase c# (4)

Aquí está mi código, en caso de que sea de utilidad para alguien.

// This converts to camel case // Location_ID => LocationId, and testLEFTSide => TestLeftSide static string CamelCase(string s) { var x = s.Replace("_", ""); if (x.Length == 0) return "Null"; x = Regex.Replace(x, "([A-Z])([A-Z]+)($|[A-Z])", m => m.Groups[1].Value + m.Groups[2].Value.ToLower() + m.Groups[3].Value); return char.ToUpper(x[0]) + x.Substring(1); }

La última línea cambia primero de caracteres a mayúsculas, pero puede cambiar a minúsculas, o lo que quiera.

Tengo una cadena que convertí a TextInfo.ToTitleCase y quité los guiones bajos y uní la cadena. Ahora necesito cambiar el primer y solo el primer carácter de la cadena a minúsculas y, por alguna razón, no puedo averiguar cómo lograrlo. Gracias de antemano por la ayuda.

class Program { static void Main(string[] args) { string functionName = "zebulans_nightmare"; TextInfo txtInfo = new CultureInfo("en-us", false).TextInfo; functionName = txtInfo.ToTitleCase(functionName).Replace(''_'', '' '').Replace(" ", String.Empty); Console.Out.WriteLine(functionName); Console.ReadLine(); } }

Resultados: ZebulansNightmare

Resultados Deseados: zebulansNightmare

ACTUALIZAR:

class Program { static void Main(string[] args) { string functionName = "zebulans_nightmare"; TextInfo txtInfo = new CultureInfo("en-us", false).TextInfo; functionName = txtInfo.ToTitleCase(functionName).Replace("_", string.Empty).Replace(" ", string.Empty); functionName = $"{functionName.First().ToString().ToLowerInvariant()}{functionName.Substring(1)}"; Console.Out.WriteLine(functionName); Console.ReadLine(); } }

Produce la salida deseada.


Implementé la respuesta de Bronumski en un método de extensión (sin reemplazar los guiones bajos).

public static class StringExtension { public static string ToCamelCase(this string str) { if(!string.IsNullOrEmpty(str) && str.Length > 1) { return Char.ToLowerInvariant(str[0]) + str.Substring(1); } return str; } }

y para usarlo:

string input = "ZebulansNightmare"; string output = input.ToCamelCase();


Solo necesitas bajar el primer char en la matriz. Ver esta answer

Char.ToLowerInvariant(name[0]) + name.Substring(1)

Como nota al margen, como está eliminando espacios, puede reemplazar el guión bajo con una cadena vacía.

.Replace("_", string.Empty)


public static string ToCamelCase(this string text) { return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(te); } public static string ToCamelCase(this string text) { return String.Join(" ", text.Split() .Select(i => Char.ToUpper(i[0]) + i.Substring(1)));} public static string ToCamelCase(this string text) { char[] a = text.ToLower().ToCharArray(); for (int i = 0; i < a.Count(); i++ ) { a[i] = i == 0 || a[i-1] == '' '' ? char.ToUpper(a[i]) : a[i]; } return new string(a);}