1. ホーム
  2. c#

[解決済み] BestPractice - 文字列の最初の文字を小文字に変換する

2022-04-28 06:13:22

質問

文字列の最初の文字を小文字に変換するメソッドが欲しいです。

私のアプローチ

1.

public static string ReplaceFirstCharacterToLowerVariant(string name)
{
    return String.Format("{0}{1}", name.First().ToString().ToLowerInvariant(), name.Substring(1));
}

2.

public static IEnumerable<char> FirstLetterToLowerCase(string value)
{
    var firstChar = (byte)value.First();
    return string.Format("{0}{1}", (char)(firstChar + 32), value.Substring(1));
}

あなたなら、どのようなアプローチをとりますか?

解決方法は?

単純な連結を使いますね。

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

最初の解決策は、最適化されていません。 string.Format は遅いので、絶対に変更しない書式であれば必要ありません。また、文字を小文字に変換するために余分な文字列が生成されますが、これは必要ありません。

ASCII文字値のオフセットに関する知識を必要とするため、"+ 32"によるアプローチは醜く、保守性に欠けます。また、UnicodeデータとASCIIシンボル文字で不正な出力を生成します。