J'ai converti une chaîne en TextInfo.ToTitleCase, puis j'ai supprimé les traits de soulignement et joint la chaîne. Maintenant, je dois changer le premier et le seul premier caractère de la chaîne en minuscules et, pour une raison quelconque, je ne sais pas comment le faire. Merci d'avance pour l'aide.
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();
}
}
Résultats: ZebulansNightmare
Résultats souhaités: zebulansNightmare
METTRE À JOUR:
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();
}
}
Produit la sortie désirée
Vous devez juste abaisser le premier caractère du tableau. Voir cette répondre
Char.ToLowerInvariant(name[0]) + name.Substring(1)
En remarque, puisque vous supprimez des espaces, vous pouvez remplacer le trait de soulignement par une chaîne vide.
.Replace("_", string.Empty)
Implémenter la réponse de Bronumski dans une méthode d'extension (sans remplacer les caractères de soulignement).
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;
}
}
et de l'utiliser:
string input = "ZebulansNightmare";
string output = input.ToCamelCase();
Voici mon code, au cas où il serait utile à quiconque
// 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 dernière ligne change le premier caractère en majuscule, mais vous pouvez passer en minuscule ou à votre guise.
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);}