情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

String.Format メソッド

2013/12/12

指定した文字列の各書式項目を、対応するオブジェクトの値と等価のテキストに置換します。

このメンバーはオーバーロードされます。このメンバーの詳細 (構文、使用法、例など) については、オーバーロード リストの名前をクリックしてください。

  名前説明
パブリック メソッド 静的メンバー Format(String, Object) 指定した文字列の 1 つ以上の書式項目を、指定したオブジェクトの文字列形式に置換します。
パブリック メソッド 静的メンバー Format(String, Object[]) 指定した文字列の書式項目を、指定した配列内の対応するオブジェクトの文字列形式に置換します。
パブリック メソッド 静的メンバー Format(IFormatProvider, String, Object[]) 指定した文字列の書式項目を、指定した配列内の対応するオブジェクトの値と等価のテキストに置換します。指定したパラメーターにより、カルチャ固有の書式設定情報が提供されます。
パブリック メソッド 静的メンバー Format(String, Object, Object) 指定した文字列の書式項目を、指定した 2 つのオブジェクトの文字列形式に置換します。
パブリック メソッド 静的メンバー Format(String, Object, Object, Object) 指定した文字列の書式項目を、指定した 3 つのオブジェクトの文字列形式に置換します。
このページのトップへ

Format メソッドの各オーバーロードでは[87b7d528-73f6-43c6-b71a-f23043039a49]を使用して、0 から始まるインデックス付きプレースホルダー (書式項目と呼ばれる) を複合書式指定文字列で示します。各書式項目は、実行時に、パラメーター リストの対応する引数の文字列形式に置き換えられます。引数の値が null である場合、String.Empty に置き換えられます。たとえば、Format メソッドの次の呼び出しには、{0}、{1}、{2} の 3 つの書式項目を持つ書式指定文字列および 3 つの項目を持つ引数リストが含まれます。


DateTime dat = new DateTime(2012, 1, 17, 9, 30, 0); 
string city = "Chicago";
int temp = -16;
string output = String.Format("At {0} in {1}, the temperature was {2} degrees.",
                              dat, city, temp);
inputBlock.Text += output;
// The example displays the following output:
//    At 1/17/2012 9:30:00 AM in Chicago, the temperature was -16 degrees.   


書式項目の構文は次のとおりです。

{index[,alignment][ :formatString] }

角かっこはオプション要素を表します。左角かっこと右角かっこが必要です。書式項目の要素は次のとおりです。

index

文字列形式が文字列のこの位置に含まれる引数の、0 から始まるインデックス。

alignment

引数の挿入先フィールドの全体の長さ、および右揃え (正の整数) か左揃え (負の整数) かを示す符号付き整数。alignment を省略した場合、対応する引数の文字列形式は先頭と後続の空白を除いてフィールドに挿入されます。

formatString

対応する引数の結果文字列の書式を指定する書式指定文字列。formatString を省略した場合、対応する引数のパラメーターなしの ToString メソッドを呼び出して文字列形式を生成します。formatString が存在する場合、その書式項目で参照されている引数で IFormattable インターフェイスを実装する必要があります。書式指定文字列をサポートする型を次に示します。

メモメモ:

書式文字列に左中かっこまたは右中かっこを文字として含める場合は、「[87b7d528-73f6-43c6-b71a-f23043039a49]」記事の「中かっこのエスケープ」セクションを参照してください。

書式項目のオプション要素を使用して書式設定された出力を生成する方法を次の例に示します。


using System;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      // Create array of 5-tuples with population data for three U.S. cities, 1940-1950.
      Tuple<string, DateTime, int, DateTime, int>[] cities = 
          { Tuple.Create("Los Angeles", new DateTime(1940, 1, 1), 1504277, 
                         new DateTime(1950, 1, 1), 1970358),
            Tuple.Create("New York", new DateTime(1940, 1, 1), 7454995, 
                         new DateTime(1950, 1, 1), 7891957),  
            Tuple.Create("Chicago", new DateTime(1940, 1, 1), 3396808, 
                         new DateTime(1950, 1, 1), 3620962),  
            Tuple.Create("Detroit", new DateTime(1940, 1, 1), 1623452, 
                         new DateTime(1950, 1, 1), 1849568) };

      // Display header
      string header = String.Format("{0,-12}{1,8}{2,12}{1,8}{2,12}{3,14}\n",
                                    "City", "Year", "Population", "Change (%)");
      outputBlock.Text += header + Environment.Newline;
      string output;      
      foreach (var city in cities) {
         output = String.Format("{0,-12}{1,8:yyyy}{2,12:N0}{3,8:yyyy}{4,12:N0}{5,14:P1}",
                                city.Item1, city.Item2, city.Item3, city.Item4, city.Item5,
                                (city.Item5 - city.Item3)/city.Item3 * 1.0);
         outputBlock.Text += output + Environment.Newline;
      }
   }
}
// The example displays the following output:
//    City            Year  Population    Year  Population    Change (%)
//    
//    Los Angeles     1940   1,504,277    1950   1,970,358        31.0 %
//    New York        1940   7,454,995    1950   7,891,957         5.9 %
//    Chicago         1940   3,396,808    1950   3,620,962         6.6 %
//    Detroit         1940   1,623,452    1950   1,849,568        13.9 %


表示: