C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のToUpper()メソッドの使い方を解説!文字列を大文字に変換する方法

C#のToUpper()メソッドは、対象の文字列をすべて大文字に変換した新しい文字列(コピー)を返すメソッドです。C#の文字列(string型)は不変(immutable)であるため、元の文字列そのものは変更されず、大文字に変換された結果が新しい文字列として返される点に注意してください。

構文

public string ToUpper ();

引数を指定しない場合は、現在のカルチャの規則に従って大文字への変換が行われます。カルチャを明示的に指定したい場合は、次のオーバーロードを使用します。

public string ToUpper (CultureInfo culture);

例1:基本的な使い方

まずは、引数なしのToUpper()メソッドを使用した基本的なサンプルコードを見てみましょう。あわせてSubstring()メソッドやToCharArray()メソッドとの組み合わせも確認できます。

using System;

public class Demo {
    public static void Main(String[] args) {
        string str1 = "Welcome!";
        string str2 = "Thisisit!";
        char[] arr1 = str1.ToCharArray(3, 2);
        char[] arr2 = str2.ToCharArray(2, 2);

        Console.WriteLine("文字列1 = " + str1);
        Console.WriteLine("文字列1 のToUpper = " + str1.ToUpper());
        Console.WriteLine("文字列1 インデックス4からの部分文字列 = " + str1.Substring(4, 4));
        Console.Write("文字配列...文字列1 =");
        for (int i = 0; i < arr1.Length; i++)
            Console.Write(" " + arr1[i]);

        Console.WriteLine("\n\n文字列2 = " + str2);
        Console.WriteLine("文字列2 のToUpper = " + str2.ToUpper());
        Console.WriteLine("文字列2 先頭5文字分の部分文字列 = " + str2.Substring(0, 5));
        Console.Write("文字配列...文字列2 =");
        for (int i = 0; i < arr2.Length; i++)
            Console.Write(" " + arr2[i]);
    }
}

実行結果

文字列1 = Welcome!
文字列1 のToUpper = WELCOME!
文字列1 インデックス4からの部分文字列 = ome!
文字配列...文字列1 = c o

文字列2 = Thisisit!
文字列2 のToUpper = THISISIT!
文字列2 先頭5文字分の部分文字列 = Thisi
文字配列...文字列2 = i s

例2:CultureInfoを指定して大文字に変換する

次に、CultureInfoを引数として渡すオーバーロードを使った例です。ここでは英語圏(en-US)のカルチャ規則を明示的に指定しています。

using System;
using System.Globalization;

public class Demo {
    public static void Main(String[] args) {
        string str1 = "JackSparrow!";
        string str2 = "@#$PQRSTUV!";

        Console.WriteLine("文字列1 = " + str1);
        Console.WriteLine("文字列1 のToUpper = " + str1.ToUpper(new CultureInfo("en-US", false)));
        Console.WriteLine("文字列1 インデックス2からの部分文字列 = " + str1.Substring(2, 2));

        Console.WriteLine("\n\n文字列2 = " + str2);
        Console.WriteLine("文字列2 のToUpper = " + str2.ToUpper(new CultureInfo("en-US", false)));
        Console.WriteLine("文字列2 先頭5文字分の部分文字列 = " + str2.Substring(0, 5));
    }
}

実行結果

文字列1 = JackSparrow!
文字列1 のToUpper = JACKSPARROW!
文字列1 インデックス2からの部分文字列 = ck

文字列2 = @#$PQRSTUV!
文字列2 のToUpper = @#$PQRSTUV!
文字列2 先頭5文字分の部分文字列 = @#$PQ

ToUpper()メソッド使用時のポイント

  • 元の文字列は変更されない:変換結果は戻り値として返されるため、必ず受け取って使用してください。「str.ToUpper();」だけを書いても元の文字列は変わりません。
  • カルチャ依存の挙動に注意:引数なしの場合、実行環境のカルチャ設定によって結果が異なることがあります。たとえばトルコ語のカルチャでは「i」が「İ」に変換されるなどの特殊なルールが適用されます。
  • カルチャに依存しない変換にはToUpperInvariant():ファイル名や識別子、プロトコル処理など、どの環境でも同じ結果が必要な場面では、ToUpperInvariant()メソッドの使用が推奨されます。

まとめ

ToUpper()メソッドは、文字列を大文字に変換するためのシンプルながら便利なメソッドです。引数なしで呼び出せば現在のカルチャ規則が適用され、CultureInfoを渡せばカルチャを明示的に制御できます。用途に応じて適切なオーバーロードを選択し、環境による差異を避けたい場合はToUpperInvariant()も活用するとよいでしょう。

  1. C#のConsole.ResetColor()メソッドの使い方を解説

    概要C#のConsole.ResetColor()メソッドは、コンソールの前景色(文字色)と背景色を、既定の配色に戻すために使用されます。プログラム内で一時的に文字色や背景色を変更した後、元の状態へ復元したい場合に非常に便利です。構文ResetColor()メソッドの構文は以下のとおりです。public static void ResetColor ();このメソッドは引数を受け取らず、戻り値もありません。また、staticメソッドであるため、インスタンスを生成することなく、Consoleクラスから直接呼び出すことができます。使用例それでは、C#でConsole.ResetColor()メソッ

  2. C#のConsole.MoveBufferArea()メソッドの使い方を徹底解説

    C#のConsole.MoveBufferArea()メソッドは、コンソールの画面バッファ内にある指定されたソース領域を、指定されたコピー先(ターゲット)領域へ移動するために使用されるメソッドです。コンソールアプリケーションで画面上のテキストを別の位置に移動させたい場合に便利です。構文MoveBufferArea()メソッドの基本的な構文は以下の通りです。public static void MoveBufferArea(int sourceLeft, int sourceTop, int sourceWidth, int sourceHeight, int targetLeft, int t