1. ホーム
  2. c#

[解決済み] タイトルケースからキャメルケースへの文字列の変換 C#

2023-05-25 15:15:17

質問

TextInfo.ToTitleCaseで変換した文字列があり、アンダースコアを削除して文字列を結合しています。 今、文字列の最初の文字だけを小文字に変更する必要があるのですが、なぜかそれを達成する方法がわかりません。 助けていただき、ありがとうございます。

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();
    }
}

結果 ZebulansNightmare

希望する結果:ZebulansNightmare(ゼビュランスナイトメア

UPDATE

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();
    }
}

目的の出力を生成する

どのように解決するのですか?

配列の先頭の文字を下げればよいのです。次の図を参照してください。 答え

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

余談ですが、スペースを削除しているところを見ると、アンダースコアを空文字列に置き換えることができます。

.Replace("_", string.Empty)