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

String.Format メソッド (String, Object[])

2013/12/12

指定した文字列の書式項目を、指定した配列内の対応するオブジェクトの文字列形式に置換します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public static string Format(
	string format,
	params Object[] args
)

パラメーター

format
型: System.String
複合書式指定文字列 (「解説」を参照してください)。
args
型: System.Object []
0 個以上の書式設定対象オブジェクトを含んだオブジェクト配列。

戻り値

型: System.String
書式項目が args の対応するオブジェクトの文字列形式に置換された format のコピー。

例外条件
ArgumentNullException

format または argsnull です。

FormatException

format が無効です。

または

書式項目のインデックスが 0 未満か、args 配列の長さ以上です。

このメソッドでは、.NET Framework の[87b7d528-73f6-43c6-b71a-f23043039a49]を使用して、オブジェクトの値を対応する文字列形式に変換し、その文字列形式を文字列中に埋め込みます。.NET Framework は、さまざまな書式設定機能をサポートしています。詳細については、デスクトップ アプリケーション用の .NET Framework のドキュメントで書式設定機能について解説した次のトピックを参照してください。

format パラメーターは、ゼロ個以上のテキストに、このメソッドのパラメーター リストに指定されたオブジェクトと対応する、ゼロ個以上のインデックス付きプレースホルダー (書式項目と呼ばれる) を組み合わせて指定します。各書式項目は、書式設定プロセスで、対応するオブジェクトの文字列形式に置き換えられます。

書式項目の構文を次に示します。

{index[,length][:formatString]}

角かっこで囲まれている要素は省略可能です。各要素について次の表で説明します。書式項目の構文など、複合書式指定機能の詳細については、「[87b7d528-73f6-43c6-b71a-f23043039a49]」を参照してください。

要素

説明

index

書式設定するオブジェクトのパラメーター リスト内の 0 から始まる位置。index で指定されたオブジェクトが null の場合、書式項目は String.Empty で置き換えられます。index 位置にパラメーターが存在しない場合、FormatException がスローされます。

,length

パラメーターの文字列形式の最小文字数。正数の場合、パラメーターは右揃えになります。負数の場合、左揃えになります。

:formatString

書式設定するオブジェクトでサポートされている標準書式指定文字列またはカスタム書式指定文字列。formatString に使用できる値は、オブジェクトの ToString(format) メソッドでサポートされている値と同じです。formatString が指定されておらず、書式設定するオブジェクトに IFormattable インターフェイスが実装されている場合、IFormattable.ToString 書式指定文字列として使用される format パラメーターの値として null が渡されます。

メモメモ:

日付と時刻の値で使用する標準書式指定文字列およびカスタム書式指定文字列の詳細については、「[bb79761a-ca08-44ee-b142-b06b3e2fc22b]」および「[98b374e3-0cc2-4c78-ab44-efb671d71984]」を参照してください。数値で使用する標準書式指定文字列およびカスタム書式指定文字列の詳細については、「[580e57eb-ac47-4ffd-bccd-3a1637c2f467]」および「[6f74fd32-6c6b-48ed-8241-3c2b86dea5f4]」を参照してください。列挙体で使用する標準書式指定文字列については、「[dd1ff672-1052-42cf-8666-4924fb6cd1a1]」を参照してください。

先頭および末尾の中かっこ文字 "{" および "}" は必須です。format 内でリテラルな中かっこ文字を指定するには、"{{" または "}}" のように、先頭または末尾の中かっこ文字を 2 つ続けて指定します。

format の値が "『Microsoft® .NET (Core Reference)』を {0:####} 冊お買い上げいただき、ありがとうございました。" で、arg[0] が 123 という値を持つ Int16 だとすると、戻り値は次のようになります。

"『Microsoft® .NET (Core Reference)』を 123 冊お買い上げいただき、ありがとうございました。"

format の値が "ブラッドの飼っている犬には {0,-8:G} 匹のノミがいる。" で、arg[0] が 42 という値を持つ Int16 の場合、戻り値は次のようになります。この例では、アンダースコアは埋め込まれるスペースを表します。

"ブラッドの飼っている犬には 42______ 匹のノミがいる。"

次の例は、特定の日の高温と低温のデータを含む文字列を作成します。複合書式指定文字列には、C# の例では 5 つの書式項目、Visual Basic の例では 6 つの項目があります。2 つの形式のアイテムが、それぞれ対応する値の文字列形式の幅を定義し、最初の形式のアイテムには、標準の日付と時刻の書式指定文字列も含まれます。


using System;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      DateTime date1 = new DateTime(2009, 7, 1);
      TimeSpan hiTime = new TimeSpan(14, 17, 32);
      decimal hiTemp = 62.1m;
      TimeSpan loTime = new TimeSpan(3, 16, 10);
      decimal loTemp = 54.8m;

      string result1 = String.Format("Temperature on {0:d}:\n{1,11}: {2} degrees (hi)\n{3,11}: {4} degrees (lo)",
                                     date1, hiTime, hiTemp, loTime, loTemp);
      outputBlock.Text += result1 + "\n";
      outputBlock.Text += "\n";

      string result2 = String.Format("Temperature on {0:d}:\n{1,11}: {2} degrees (hi)\n{3,11}: {4} degrees (lo)",
                                     new object[] { date1, hiTime, hiTemp, loTime, loTemp });
      outputBlock.Text += result2 + "\n";
   }
}
// The example displays the following output:
//       Temperature on 7/1/2009:
//          14:17:32: 62.1 degrees (hi)
//          03:16:10: 54.8 degrees (lo)
//       Temperature on 7/1/2009:
//          14:17:32: 62.1 degrees (hi)
//          03:16:10: 54.8 degrees (lo)


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: