大文字・小文字に変換する方法
小文字 ー> 大文字大文字に変換された文字列 = 対象の文字列.ToUpper();
大文字に変換された文字列 = 対象の文字列.ToUpper(カルチャ);
大文字に変換された文字列 = 対象の文字列.ToUpperInvariant();
大文字 ー> 小文字
小文字に変換された文字列 = 対象の文字列.ToLower();
小文字に変換された文字列 = 対象の文字列.ToLower(カルチャ);
小文字に変換された文字列 = 対象の文字列.ToLowerInvariant();
- 全角(2バイト文字・多バイト文字)のアルファベットも変換されます。
- 半角カナ・全角カナは変換されません。
- カルチャ については後続の章を参照してください。
- ToXXXX() と ToXXXXInvariant() の違いについては後続の章を参照してください。
サンプルプログラム
次のサンプルコードは ToUpper() と ToLower() を使用し、大文字小文字の変換結果を表示します。// 小文字を大文字に変換する
string upperString = "hello world. hello world。アイウエオ".ToUpper();
// 結果 = HELLO WORLD. HELLO WORLD。アイウエオ
Console.WriteLine(upperString);
// 大文字を小文字に変換する
string lowerString = "HELLO WORLD. HELLO WORLD。アイウエオ".ToLower();
// 結果 = hello world. hello world。アイウエオ
Console.WriteLine(lowerString);

カルチャ とは?
ロケール とも呼ばれ、言語によって異なる 表記体系、使用する暦、文字列の並べ替え順序、および日付と数値の書式 などの情報です。デフォルトのカルチャ は OSの言語設定 などを元に設定されます。現在のカルチャ は次のコードで確認できます。
現在のカルチャ = System.Globalization.CultureInfo.CurrentCulture;
サンプルプログラム
次のサンプルコードは 現在のカルチャを取得し、書式などを表示します。結果はOSの設定などにより、異なります。var culture = System.Globalization.CultureInfo.CurrentCulture;
Console.WriteLine($"カルチャ名 : {culture.Name}");
Console.WriteLine($"短い日時の書式 : {culture.DateTimeFormat.ShortDatePattern}");
Console.WriteLine($"長い日時の書式 : {culture.DateTimeFormat.FullDateTimePattern}");
Console.WriteLine($"整数の桁区切り記号: {culture.NumberFormat.NumberGroupSeparator}");
Console.WriteLine($"少数の桁区切り記号: {culture.NumberFormat.NumberDecimalSeparator}");

ToUpper と ToUpperInvariant、ToLower と ToLowerInvariant の違い
ToUpper と ToLower は カルチャ に基づいて変換を行います。第一引数に CultureInfo を指定できますが、省略すると現在のカルチャ(CultureInfo.CurrentCulture) が使用されます。ToUpperInvariant と ToLowerInvaria はカルチャの影響は受けず、常に同じ結果を返します。
ToUpper と ToUpperInvariant どちらを使うべきか
日本語や英語であればどちらを使用しても同じ結果を返します。公式ドキュメントでは ファイル名、名前付きパイプ、レジストリ キーなどは OS設定に依存しないよう、ToUpperInvariant または ToLowerInvariant を使用するように注意書きがあります。
サンプルコードのダウンロード
- サンプルコードの実行には Microsoft Visual Studio 2022 以上のバージョンが必要です。
- 2022以外のバージョンではプロジェクトを開いた際にファイルの変換が必要な場合があります。その場合は変換後に実行してください。
- Visual Studio インストール時のオプションによっては、ビルドエラー等が発生することがあります。
- サンプルコードのダウンロードや実行によって損害等が発生した場合、理由の如何に関わらず、当方は一切責任を負いません。
ダウンロードリンク
参考資料
- Microsoft 公式ドキュメント - String.ToUpper メソッド
- Microsoft 公式ドキュメント - String.ToUpperInvariant メソッド
- Microsoft 公式ドキュメント - String.ToLower メソッド
- Microsoft 公式ドキュメント - String.ToLowerInvariant メソッド
- Microsoft 公式ドキュメント - CultureInfo クラス
- Microsoft 公式ドキュメント - CultureInfo.CurrentCulture プロパティ
検証環境
- .NET 6.0
- Microsoft Visual Studio Enterprise 2022 Version 17.2.6
- Microsoft Windows 10 Enterprise Version 22H2 OS Build 19045.2251 Experience: Windows Feature Experience Pack 120.2212.4180.0