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

C#のString.ToUpperInvariantメソッドとは?構文と使い方を実例付きで解説

C#のString.ToUpperInvariant()メソッドは、インバリアントカルチャ(カルチャに依存しない固定の規則)における大文字・小文字の変換ルールを使用して、文字列をすべて大文字に変換した新しい文字列を返します。

このメソッドの最大の特徴は、実行環境の言語や地域設定(カルチャ)の影響を受けない点です。そのため、どの環境で実行しても常に同じ変換結果が得られます。ユーザーのロケール設定によって変換結果が変わるのを避けたい場合、たとえば識別子やキーの正規化、文字列比較の前処理などに特に有用です。

構文

構文は以下のとおりです。

public string ToUpperInvariant ();

引数は取らず、戻り値として大文字に変換された新しい文字列(string型)を返します。なお、C#の文字列は不変(immutable)であるため、元の文字列自体が書き換えられることはありません。

使用例1

まずは基本的な使い方を確認しましょう。

using System;
using System.Text;
public class Demo {
    public static void Main(String[] args) {
        string str1 = "one";
        string str2 = "TWO";
        string str3 = "ThrEE";
        Console.WriteLine("String 1 = "+str1);
        Console.WriteLine("String1 ToUpperInvariant = "+str1.ToUpperInvariant());
        Console.WriteLine("String 2 = "+str2);
        Console.WriteLine("String2 ToUpperInvariant = "+str2.ToUpperInvariant());
        Console.WriteLine("String 3 = "+str3);
        Console.WriteLine("String3 ToUpperInvariant = "+str3.ToUpperInvariant());
    }
}

出力

String 1 = one
String1 ToUpperInvariant = ONE
String 2 = TWO
String2 ToUpperInvariant = TWO
String 3 = ThrEE
String3 ToUpperInvariant = THREE

この例から、小文字のみの「one」だけでなく、大文字と小文字が混在する「ThrEE」もすべて大文字に変換されていることがわかります。また、すでにすべて大文字である「TWO」はそのままの形で返されます。

使用例2

続いて、別の例を見てみましょう。

using System;
public class Demo {
    public static void Main(String[] args) {
        string str1 = "abcd";
        string str2 = "PQRS";
        Console.WriteLine("String 1 = "+str1);
        Console.WriteLine("String1 ToUpperInvariant = "+str1.ToUpperInvariant());
        Console.WriteLine("String 2 = "+str2);
        Console.WriteLine("String2 ToUpperInvariant = "+str2.ToUpperInvariant());
    }
}

出力

String 1 = abcd
String1 ToUpperInvariant = ABCD
String 2 = PQRS
String2 ToUpperInvariant = PQRS

このように、ToUpperInvariant()メソッドを呼び出すだけで、どんな文字列でも確実に大文字へ変換できます。

ToUpper()メソッドとの違い

C#にはよく似たメソッドとしてToUpper()があります。両者の違いは次のとおりです。

  • ToUpper():現在のカルチャ(CultureInfo.CurrentCulture)の規則に従って大文字に変換します。
  • ToUpperInvariant():カルチャに依存しない固定の規則で大文字に変換します。

たとえばトルコ語のカルチャでは、「i」が通常とは異なる「İ」に変換されるといった挙動の違いが生じることがあります。このようなカルチャ依存の影響を避け、アプリケーション全体で一貫した動作を保証したい場合には、ToUpperInvariant()の使用が推奨されます。

  1. C#のSingleOrDefault()メソッドの使い方をわかりやすく解説

    SingleOrDefault()メソッドとはC#のLINQに含まれるSingleOrDefault()メソッドは、シーケンスから単一の特定要素を返すメソッドです。大きな特徴は、要素がシーケンス内に存在しない場合でも例外をスローせず、その型のデフォルト値を返すという点にあります。たとえば参照型の場合は null、数値型の場合は 0 といったデフォルト値が返されるため、空のコレクションを安全に扱いたい場面で非常に便利です。Single()メソッドとの違い似た名前の Single() メソッドは、要素が存在しない場合や複数の要素が見つかった場合に例外(InvalidOperationExcepti

  2. 【C#】String.Join()メソッドで文字列配列を連結する方法

    String.Join()メソッドとはC#のString.Join()メソッドは、文字列配列のすべての要素を1つの文字列に連結するためのメソッドです。各要素の間には、引数で指定した区切り文字(セパレーター)が自動的に挿入されます。たとえば、区切り文字として改行コード「\n」を指定すれば、配列の各要素がそれぞれ別の行に配置された、複数行の文字列を簡単に作成できます。基本的な構文String.Join(\n, starray);第1引数: 要素間に挿入する区切り文字第2引数: 連結対象の文字列配列戻り値: 連結された1つの文字列サンプルコード以下は、5つの文字列要素を持つ配列を改行コードで連結し、