.NET TIPS

アルファベットを大文字/小文字に変換するには?

デジタルアドバンテージ
2003/06/27

 文字列に含まれるアルファベットを大文字あるいは小文字に変換するには、Stringクラス(System名前空間)のToLowerメソッドあるいはToUpperメソッドを使用する。文字列オブジェクトはStringクラスのインスタンスであるため(C#のstring型はStringクラスのエイリアス(別名)である)、文字列オブジェクトに対して直接これらのメソッドを呼び出すことができる。以下にこれらを使用したサンプル・プログラムを示す。

// chcase1.cs

using System;

public class ChangeCase1 {
  static void Main() {

    string orig = "vIsUaL sTuDiO .nEt 2003 発売!";

    Console.WriteLine(orig.ToLower());
    // 出力:visual studio .net 2003 発売!

    Console.WriteLine(orig.ToUpper());
    // 出力:VISUAL STUDIO .NET 2003 発売!
  }
}

// コンパイル方法:csc chcase1.cs
大文字/小文字への変換を行うC#のサンプル・プログラム(chcase1.cs)

 サンプル・プログラムの出力結果からも分かるように、全角文字のアルファベットも変換することができる。アルファベット以外の文字は影響を受けない。

TextInfoクラスによる変換

 アルファベットの大文字や小文字の区別は、言語によって異なるものである。そのため.NET Frameworkでは、カルチャ(言語や地域固有の情報)に依存する大文字/小文字の変換を、TextInfoクラス(System.Globalization名前空間)のToLowerメソッドとToUpperメソッドで定義している。上記のサンプル・プログラムで使用したStringクラスの2つのメソッドは、実際にはこれらのメソッドをラップしたものだ。

 TextInfoクラスのインスタンスは、カルチャ情報を示すCultureInfoクラス(System.Globalization名前空間)のTextInfoプロパティから取得することができる。また、システムで設定されている現在のカルチャはCurrentCultureプロパティから取得できる。

 次のサンプル・プログラムは、TextInfoクラスにあるメソッドを使用して、アルファベットの大文字/小文字を変換した例である。

// chcase2.cs

using System;
using System.Globalization;

public class ChangeCase2 {
  static void Main() {

    string orig = "vIsUaL sTuDiO .nEt 2003 発売!";

    CultureInfo ci = CultureInfo.CurrentCulture;
    TextInfo ti    = ci.TextInfo;

    Console.WriteLine("現在のカルチャ:" + ci);
    // 出力:現在のカルチャ:ja-JP

    Console.WriteLine(ti.ToLower(orig));
    // 出力:visual studio .net 2003 発売!

    Console.WriteLine(ti.ToUpper(orig));
    // 出力:VISUAL STUDIO .NET 2003 発売!

    Console.WriteLine(ti.ToTitleCase(orig));
    // 出力:Visual Studio .Net 2003 発売!
  }
}

// コンパイル方法:csc chcase2.cs
TextInfoクラスにより大文字/小文字への変換を行うサンプル・プログラム(chcase2.cs)

 TextInfoクラスには、文字列を「タイトル文字列」に変換するためのToTitleCaseメソッドも用意されおり、サンプル・プログラムではこのメソッドを最後に呼び出している。タイトル文字列への変換では、単語の最初の文字が大文字に変換され、残りの文字は小文字に変換される。

 なおVisual Basic .NETには、アルファベットを大文字/小文字に変換するためのLCase関数とUCase関数が用意されているが、これらの関数もTextInfoクラスのメソッドをラップしている。End of Article

カテゴリ:クラス・ライブラリ 処理対象:文字列
使用ライブラリ:Stringクラス(System名前空間)
使用ライブラリ:TextInfoクラス(System.Globalization名前空間)
使用ライブラリ:CultureInfoクラス(System.Globalization名前空間)
 
この記事と関連性の高い別の.NET TIPS
文字と文字列を変換するには?
大文字/小文字を区別しないで文字列を比較するには?
文字列を数値に変換するには?[C#、VB]
文字列をシフトJISとしてバイト列に変換するには?
文字列を数値に変換するには?(TryParse編)
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間