英語で読む

次の方法で共有


String.Format メソッド

定義

指定した形式に基づいてオブジェクトの値を文字列に変換し、別の文字列に挿入します。

String.Format メソッドを初めて使用する場合は、「String.Format メソッドの概要」 を参照してください。

オーバーロード

Format(IFormatProvider, String, Object[])

文字列内の書式指定項目を、指定した配列内の対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

Format(IFormatProvider, String, Object, Object, Object)

文字列内の書式指定項目を、指定した 3 つのオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

Format(String, Object, Object, Object)

文字列内の書式指定項目を、指定した 3 つのオブジェクトの文字列形式に置き換えます。

Format(IFormatProvider, String, Object, Object)

文字列内の書式指定項目を、指定した 2 つのオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

Format(String, Object, Object)

文字列内の書式指定項目を、指定した 2 つのオブジェクトの文字列形式に置き換えます。

Format(IFormatProvider, CompositeFormat, ReadOnlySpan<Object>)

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

Format(IFormatProvider, String, Object)

指定した文字列内の書式指定項目を、対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

Format(IFormatProvider, String, ReadOnlySpan<Object>)

文字列内の書式指定項目を、指定されたスパン内の対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

Format(String, ReadOnlySpan<Object>)

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

Format(String, Object[])

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

Format(String, Object)

文字列内の 1 つ以上の書式指定項目を、指定したオブジェクトの文字列形式に置き換えます。

Format(IFormatProvider, CompositeFormat, Object[])

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

Format<TArg0,TArg1,TArg2>(IFormatProvider, CompositeFormat, TArg0, TArg1, TArg2)

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

Format<TArg0,TArg1>(IFormatProvider, CompositeFormat, TArg0, TArg1)

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

Format<TArg0>(IFormatProvider, CompositeFormat, TArg0)

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

注釈

この API の詳細については、「String.Formatの補足 API 解説 参照してください。

Format(IFormatProvider, String, Object[])

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の書式指定項目を、指定した配列内の対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

C#
public static string Format (IFormatProvider provider, string format, params object[] args);
C#
public static string Format (IFormatProvider? provider, string format, params object?[] args);

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

args
Object[]

書式設定する 0 個以上のオブジェクトを含むオブジェクト配列。

戻り値

書式設定項目が、args内の対応するオブジェクトの文字列形式に置き換えられた format のコピー。

例外

format または argsnull

format が無効です。

-又は-

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

注釈

重要

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、4 つ以上の式を文字列表現に変換し、それらの表現を文字列に埋め込みます。 変換を実行する場合、メソッドはカルチャに依存する書式設定またはカスタム フォーマッタを使用します。 このメソッドは、ToString(IFormatProvider) メソッドを呼び出すか、オブジェクトの対応する書式指定項目に書式指定文字列が含まれている場合は、ToString(String,IFormatProvider) メソッドを呼び出すことによって、各 Object 引数を文字列形式に変換します。 これらのメソッドが存在しない場合は、ToString メソッド オブジェクトのパラメーターなしのメソッドを呼び出します。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、カルチャに依存またはカスタムの書式設定を提供するオブジェクトと、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用して、メソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

例: カルチャに依存する書式設定

この例では、Format(IFormatProvider, String, Object[]) メソッドを使用して、いくつかの異なるカルチャを使用して、日付と時刻の値と数値の文字列形式を表示します。

C#
string[] cultureNames = { "en-US", "fr-FR", "de-DE", "es-ES" };

DateTime dateToDisplay = new DateTime(2009, 9, 1, 18, 32, 0);
double value = 9164.32;

Console.WriteLine("Culture     Date                                Value\n");
foreach (string cultureName in cultureNames)
{
   System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo(cultureName);
   string output = String.Format(culture, "{0,-11} {1,-35:D} {2:N}", 
                                 culture.Name, dateToDisplay, value);
   Console.WriteLine(output);
}    
// The example displays the following output:
//    Culture     Date                                Value
//    
//    en-US       Tuesday, September 01, 2009         9,164.32
//    fr-FR       mardi 1 septembre 2009              9 164,32
//    de-DE       Dienstag, 1. September 2009         9.164,32
//    es-ES       martes, 01 de septiembre de 2009    9.164,32

こちらもご覧ください

  • DateTimeFormatInfo
  • ICustomFormatter
  • IFormatProvider
  • NumberFormatInfo
  • .NET の 書式設定の種類
  • 複合書式 を する
  • 標準の日時書式指定文字列 を する
  • カスタム日時書式指定文字列 を する
  • 標準の数値書式指定文字列 を する
  • カスタム数値書式指定文字列 を する
  • 標準の TimeSpan 書式指定文字列 を する
  • カスタム TimeSpan 書式指定文字列 を する
  • 列挙形式の文字列

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Format(IFormatProvider, String, Object, Object, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の書式指定項目を、指定した 3 つのオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

C#
public static string Format (IFormatProvider provider, string format, object arg0, object arg1, object arg2);
C#
public static string Format (IFormatProvider? provider, string format, object? arg0, object? arg1, object? arg2);

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
Object

書式設定する最初のオブジェクト。

arg1
Object

書式設定する 2 番目のオブジェクト。

arg2
Object

書式設定する 3 番目のオブジェクト。

戻り値

書式設定項目が arg0arg1、および arg2の文字列形式に置き換えられた format のコピー。

例外

formatnullです。

format が無効です。

-又は-

書式指定項目のインデックスが 0 より小さいか、2 より大きい。

注釈

重要

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドでは、複合書式設定機能 を使用して、3 つの式を文字列表現に変換し、それらの表現を文字列に埋め込みます。 変換を実行する場合、メソッドはカルチャに依存する書式設定またはカスタム フォーマッタを使用します。 このメソッドは、ToString(IFormatProvider) メソッドを呼び出すか、オブジェクトの対応する書式指定項目に書式指定文字列が含まれている場合は、ToString(String,IFormatProvider) メソッドを呼び出すことによって、各 Object 引数を文字列形式に変換します。 これらのメソッドが存在しない場合は、ToString メソッド オブジェクトのパラメーターなしのメソッドを呼び出します。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、カルチャに依存またはカスタムの書式設定を提供するオブジェクトと、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用して、メソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Format(String, Object, Object, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の書式指定項目を、指定した 3 つのオブジェクトの文字列形式に置き換えます。

C#
public static string Format (string format, object arg0, object arg1, object arg2);
C#
public static string Format (string format, object? arg0, object? arg1, object? arg2);

パラメーター

arg0
Object

書式設定する最初のオブジェクト。

arg1
Object

書式設定する 2 番目のオブジェクト。

arg2
Object

書式設定する 3 番目のオブジェクト。

戻り値

書式設定項目が arg0arg1、および arg2の文字列形式に置き換えられた format のコピー。

例外

formatnullです。

format が無効です。

-又は-

書式指定項目のインデックスが 0 より小さいか、2 より大きい。

注釈

重要

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、3 つの式の値を文字列表現に変換し、それらの表現を文字列に埋め込みます。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用してメソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

例: 3 つの引数の書式を設定する

この例では、Format(String, Object, Object, Object) メソッドを使用して、2 つの整数値を持つブール And 演算の結果を示す文字列を作成します。 書式指定文字列には 6 つの書式指定項目が含まれますが、各アイテムは 2 つの異なる方法で書式設定されるため、メソッドのパラメーター リストには 3 つの項目しか含めないため注意してください。

C#
string formatString = "    {0,10} ({0,8:X8})\n" + 
                      "And {1,10} ({1,8:X8})\n" + 
                      "  = {2,10} ({2,8:X8})";
int value1 = 16932;
int value2 = 15421;
string result = String.Format(formatString, 
                              value1, value2, value1 & value2);
Console.WriteLine(result);
// The example displays the following output:
//                16932 (00004224)
//       And      15421 (00003C3D)
//         =         36 (00000024)

こちらもご覧ください

  • .NET の 書式設定の種類
  • 複合書式 を する

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Format(IFormatProvider, String, Object, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の書式指定項目を、指定した 2 つのオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

C#
public static string Format (IFormatProvider provider, string format, object arg0, object arg1);
C#
public static string Format (IFormatProvider? provider, string format, object? arg0, object? arg1);

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
Object

書式設定する最初のオブジェクト。

arg1
Object

書式設定する 2 番目のオブジェクト。

戻り値

書式項目が arg0 および arg1の文字列表現に置き換えられる format のコピー。

例外

formatnullです。

format が無効です。

-又は-

書式項目のインデックスが 0 または 1 ではありません。

注釈

重要

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、2 つの式を文字列表現に変換し、それらの表現を文字列に埋め込みます。 変換を実行する場合、メソッドはカルチャに依存する書式設定またはカスタム フォーマッタを使用します。 このメソッドは、ToString(IFormatProvider) メソッドを呼び出すか、オブジェクトの対応する書式指定項目に書式指定文字列が含まれている場合は、ToString(String,IFormatProvider) メソッドを呼び出すことによって、各 Object 引数を文字列形式に変換します。 これらのメソッドが存在しない場合は、ToString メソッド オブジェクトのパラメーターなしのメソッドを呼び出します。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、カルチャに依存またはカスタムの書式設定を提供するオブジェクトと、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用して、メソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Format(String, Object, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の書式指定項目を、指定した 2 つのオブジェクトの文字列形式に置き換えます。

C#
public static string Format (string format, object arg0, object arg1);
C#
public static string Format (string format, object? arg0, object? arg1);

パラメーター

arg0
Object

書式設定する最初のオブジェクト。

arg1
Object

書式設定する 2 番目のオブジェクト。

戻り値

書式項目が arg0 および arg1の文字列表現に置き換えられる format のコピー。

例外

formatnullです。

format が無効です。

-又は-

書式項目のインデックスが 0 または 1 ではありません。

注釈

重要

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、2 つの式の値を文字列表現に変換し、それらの表現を文字列に埋め込みます。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用してメソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

例: 2 つの引数を書式設定する

この例では、Format(String, Object, Object) メソッドを使用して、ジェネリック Dictionary<TKey,TValue> オブジェクトに格納されている時間と温度のデータを表示します。 書式指定文字列には 3 つの書式項目がありますが、書式設定するオブジェクトは 2 つだけであることに注意してください。 これは、リスト内の最初のオブジェクト (日付と時刻の値) が 2 つの書式項目によって使用されるためです。最初の書式項目には時刻が表示され、2 番目のオブジェクトには日付が表示されます。

C#
Dictionary<DateTime, Double> temperatureInfo = new Dictionary<DateTime, Double>(); 
temperatureInfo.Add(new DateTime(2010, 6, 1, 14, 0, 0), 87.46);
temperatureInfo.Add(new DateTime(2010, 12, 1, 10, 0, 0), 36.81);

Console.WriteLine("Temperature Information:\n");
string output;   
foreach (var item in temperatureInfo)
{
   output = String.Format("Temperature at {0,8:t} on {0,9:d}: {1,5:N1}°F", 
                          item.Key, item.Value);
   Console.WriteLine(output);
}
// The example displays output like the following:
//       Temperature Information:
//       
//       Temperature at  2:00 PM on  6/1/2010:  87.5°F
//       Temperature at 10:00 AM on 12/1/2010:  36.8°F

こちらもご覧ください

  • .NET の 書式設定の種類
  • 複合書式 を する
  • 標準の日時書式指定文字列 を する
  • カスタム日時書式指定文字列 を する
  • 標準の数値書式指定文字列 を する
  • カスタム数値書式指定文字列 を する
  • 標準の TimeSpan 書式指定文字列 を する
  • カスタム TimeSpan 書式指定文字列 を する
  • 列挙形式の文字列

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Format(IFormatProvider, CompositeFormat, ReadOnlySpan<Object>)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

C#
public static string Format (IFormatProvider? provider, System.Text.CompositeFormat format, ReadOnlySpan<object?> args);
C#
public static string Format (IFormatProvider? provider, System.Text.CompositeFormat format, scoped ReadOnlySpan<object?> args);

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

args
ReadOnlySpan<Object>

書式設定するオブジェクトのスパン。

戻り値

書式設定された文字列。

例外

formatnullです。

書式指定項目のインデックスは、指定された引数の数以上です。

適用対象

.NET 9 および .NET 8
製品 バージョン
.NET 8, 9

Format(IFormatProvider, String, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

指定した文字列内の書式指定項目を、対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

C#
public static string Format (IFormatProvider provider, string format, object arg0);
C#
public static string Format (IFormatProvider? provider, string format, object? arg0);

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
Object

書式設定するオブジェクト。

戻り値

arg0の文字列表現で書式設定項目が置き換えられた format のコピー。

例外

formatnullです。

format が無効です。

-又は-

書式項目のインデックスが 0 ではありません。

注釈

重要

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、式の値を文字列形式に変換し、その表現を文字列に埋め込みます。 変換を実行する場合、メソッドはカルチャに依存する書式設定またはカスタム フォーマッタを使用します。 このメソッドは、ToString(IFormatProvider) メソッドを呼び出すか、オブジェクトの対応する書式指定項目に書式指定文字列が含まれている場合は、ToString(String,IFormatProvider) メソッドを呼び出すことによって、arg0 を文字列形式に変換します。 これらのメソッドが存在しない場合は、ToString メソッド オブジェクトのパラメーターなしのメソッドを呼び出します。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、カルチャに依存またはカスタムの書式設定を提供するオブジェクトと、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用して、メソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Format(IFormatProvider, String, ReadOnlySpan<Object>)

文字列内の書式指定項目を、指定されたスパン内の対応するオブジェクトの文字列形式に置き換えます。 パラメーターは、カルチャ固有の書式設定情報を提供します。

C#
public static string Format (IFormatProvider? provider, string format, scoped ReadOnlySpan<object?> args);

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

args
ReadOnlySpan<Object>

書式設定する 0 個以上のオブジェクトを含むオブジェクト スパン。

戻り値

書式設定項目が、args内の対応するオブジェクトの文字列形式に置き換えられた format のコピー。

適用対象

.NET 9
製品 バージョン
.NET 9

Format(String, ReadOnlySpan<Object>)

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

C#
public static string Format (string format, scoped ReadOnlySpan<object?> args);

パラメーター

args
ReadOnlySpan<Object>

書式設定する 0 個以上のオブジェクトを含むオブジェクト スパン。

戻り値

書式設定項目が、args内の対応するオブジェクトの文字列形式に置き換えられた format のコピー。

適用対象

.NET 9
製品 バージョン
.NET 9

Format(String, Object[])

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

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

C#
public static string Format (string format, params object[] args);
C#
public static string Format (string format, params object?[] args);

パラメーター

args
Object[]

書式設定する 0 個以上のオブジェクトを含むオブジェクト配列。

戻り値

書式設定項目が、args内の対応するオブジェクトの文字列形式に置き換えられた format のコピー。

例外

format または argsnull

format が無効です。

-又は-

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

注釈

重要

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、4 つ以上の式の値を文字列表現に変換し、それらの表現を文字列に埋め込みます。 args パラメーターは System.ParamArrayAttribute 属性でマークされているため、オブジェクトを個々の引数または Object 配列としてメソッドに渡すことができます。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用してメソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

例: 3 つ以上の引数を書式設定する

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

C#
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);
Console.WriteLine(result1);
Console.WriteLine();
     
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 });
Console.WriteLine(result2);
// The example displays output like the following:
//       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)

引数リストとしてではなく、配列として書式設定するオブジェクトを渡すこともできます。

C#
using System;

public class CityInfo
{
   public CityInfo(String name, int population, Decimal area, int year)
   {
      this.Name = name;
      this.Population = population;
      this.Area = area;
      this.Year = year;
   }
   
   public readonly String Name; 
   public readonly int Population;
   public readonly Decimal Area;
   public readonly int Year;
}

public class Example
{
   public static void Main()
   {
      CityInfo nyc2010 = new CityInfo("New York", 8175133, 302.64m, 2010);
      ShowPopulationData(nyc2010);
      CityInfo sea2010 = new CityInfo("Seattle", 608660, 83.94m, 2010);      
      ShowPopulationData(sea2010); 
   }

   private static void ShowPopulationData(CityInfo city)
   {
      object[] args = { city.Name, city.Year, city.Population, city.Area };
      String result = String.Format("{0} in {1}: Population {2:N0}, Area {3:N1} sq. feet", 
                                    args);
      Console.WriteLine(result); 
   }
}
// The example displays the following output:
//       New York in 2010: Population 8,175,133, Area 302.6 sq. feet
//       Seattle in 2010: Population 608,660, Area 83.9 sq. feet

こちらもご覧ください

  • .NET の 書式設定の種類
  • 複合書式 を する
  • 標準の日時書式指定文字列 を する
  • カスタム日時書式指定文字列 を する
  • 標準の数値書式指定文字列 を する
  • カスタム数値書式指定文字列 を する
  • 標準の TimeSpan 書式指定文字列 を する
  • カスタム TimeSpan 書式指定文字列 を する
  • 列挙形式の文字列

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Format(String, Object)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

文字列内の 1 つ以上の書式指定項目を、指定したオブジェクトの文字列形式に置き換えます。

C#
public static string Format (string format, object arg0);
C#
public static string Format (string format, object? arg0);

パラメーター

arg0
Object

書式設定するオブジェクト。

戻り値

書式設定項目が arg0の文字列形式に置き換えられる format のコピー。

例外

formatnullです。

format の書式項目が無効です。

-又は-

書式項目のインデックスが 0 ではありません。

注釈

重要

String.Format メソッドを呼び出したり、複合書式指定文字列使用したりする代わりに、言語でサポートされている場合 挿入文字列 を使用できます。 補間文字列は、補間式を含む文字列です。 挿入された各式は式の値で解決され、文字列が割り当てられると結果文字列に含まれます。 詳細については、「文字列補間 (C# リファレンス) および 補間文字列 (Visual Basic リファレンス)を参照してください。

このメソッドは、複合書式設定機能 を使用して、式の値を文字列形式に変換し、その表現を文字列に埋め込みます。

ただし、String.Format メソッドを呼び出すときに、呼び出す特定のオーバーロードに焦点を当てる必要はありません。 代わりに、1 つ以上の書式指定項目を含む 複合書式指定文字列 を使用してメソッドを呼び出すことができます。 各書式項目に数値インデックスを割り当てます。最初のインデックスは 0 から始まります。 最初の文字列に加えて、メソッド呼び出しにはインデックス値を持つ数の追加引数が必要です。 たとえば、書式指定項目のインデックスが 0 と 1 の文字列には、2 つの引数が必要です。インデックスが 0 ~ 5 の 1 つは 6 個の引数を持つ必要があります。 言語コンパイラは、String.Format メソッドの特定のオーバーロードに対するメソッド呼び出しを解決します。

String.Format メソッドの使用に関する詳細なドキュメントについては、「String.Format メソッドの概要」 および 呼び出すメソッドを参照してください。.

例: 1 つの引数の書式設定

次の例では、Format(String, Object) メソッドを使用して、文字列の途中に個人の年齢を埋め込みます。

C#
DateTime birthdate = new DateTime(1993, 7, 28);
DateTime[] dates = { new DateTime(1993, 8, 16), 
                     new DateTime(1994, 7, 28), 
                     new DateTime(2000, 10, 16), 
                     new DateTime(2003, 7, 27), 
                     new DateTime(2007, 5, 27) };

foreach (DateTime dateValue in dates)
{
   TimeSpan interval = dateValue - birthdate;
   // Get the approximate number of years, without accounting for leap years.
   int years = ((int) interval.TotalDays) / 365;
   // See if adding the number of years exceeds dateValue.
   string output;
   if (birthdate.AddYears(years) <= dateValue) {
      output = String.Format("You are now {0} years old.", years);
      Console.WriteLine(output);
   }   
   else {
      output = String.Format("You are now {0} years old.", years - 1);
      Console.WriteLine(output);
   }      
}
// The example displays the following output:
//       You are now 0 years old.
//       You are now 1 years old.
//       You are now 7 years old.
//       You are now 9 years old.
//       You are now 13 years old.

こちらもご覧ください

  • .NET の 書式設定の種類
  • 複合書式 を する
  • 標準の日時書式指定文字列 を する
  • カスタム日時書式指定文字列 を する
  • 標準の数値書式指定文字列 を する
  • カスタム数値書式指定文字列 を する
  • 標準の TimeSpan 書式指定文字列 を する
  • カスタム TimeSpan 書式指定文字列 を する
  • 列挙形式の文字列

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Format(IFormatProvider, CompositeFormat, Object[])

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

C#
public static string Format (IFormatProvider? provider, System.Text.CompositeFormat format, params object?[] args);

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

args
Object[]

書式設定するオブジェクトの配列。

戻り値

書式設定された文字列。

例外

format または argsnull

書式指定項目のインデックスは、指定された引数の数以上です。

適用対象

.NET 9 および .NET 8
製品 バージョン
.NET 8, 9

Format<TArg0,TArg1,TArg2>(IFormatProvider, CompositeFormat, TArg0, TArg1, TArg2)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

C#
public static string Format<TArg0,TArg1,TArg2> (IFormatProvider? provider, System.Text.CompositeFormat format, TArg0 arg0, TArg1 arg1, TArg2 arg2);

型パラメーター

TArg0

書式設定する最初のオブジェクトの型。

TArg1

書式設定する 2 番目のオブジェクトの型。

TArg2

書式設定する 3 番目のオブジェクトの型。

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
TArg0

書式設定する最初のオブジェクト。

arg1
TArg1

書式設定する 2 番目のオブジェクト。

arg2
TArg2

書式設定する 3 番目のオブジェクト。

戻り値

書式設定された文字列。

例外

formatnullです。

書式指定項目のインデックスは、指定された引数の数以上です。

適用対象

.NET 9 および .NET 8
製品 バージョン
.NET 8, 9

Format<TArg0,TArg1>(IFormatProvider, CompositeFormat, TArg0, TArg1)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

C#
public static string Format<TArg0,TArg1> (IFormatProvider? provider, System.Text.CompositeFormat format, TArg0 arg0, TArg1 arg1);

型パラメーター

TArg0

書式設定する最初のオブジェクトの型。

TArg1

書式設定する 2 番目のオブジェクトの型。

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
TArg0

書式設定する最初のオブジェクト。

arg1
TArg1

書式設定する 2 番目のオブジェクト。

戻り値

書式設定された文字列。

例外

formatnullです。

書式指定項目のインデックスは、指定された引数の数以上です。

適用対象

.NET 9 および .NET 8
製品 バージョン
.NET 8, 9

Format<TArg0>(IFormatProvider, CompositeFormat, TArg0)

ソース:
String.Manipulation.cs
ソース:
String.Manipulation.cs

CompositeFormat の書式指定項目またはアイテムを、指定した形式の対応するオブジェクトの文字列形式に置き換えます。

C#
public static string Format<TArg0> (IFormatProvider? provider, System.Text.CompositeFormat format, TArg0 arg0);

型パラメーター

TArg0

書式設定する最初のオブジェクトの型。

パラメーター

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

arg0
TArg0

書式設定する最初のオブジェクト。

戻り値

書式設定された文字列。

例外

formatnullです。

書式指定項目のインデックスは、指定された引数の数以上です。

適用対象

.NET 9 および .NET 8
製品 バージョン
.NET 8, 9