String.Format 方法

定義

根據指定的格式,將物件的值轉換成字串,並將其插入另一個字元串中。

如果您不熟悉 String.Format 方法,請參閱 開始使用 String.Format 方法 以取得快速概觀。

多載

Format(IFormatProvider, String, Object[])

將字串中的格式專案取代為指定數位中對應物件的字串表示。 參數提供特定文化特性的格式資訊。

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

將字串中的格式專案取代為三個指定物件的字串表示。 參數提供特定文化特性的格式資訊。

Format(String, Object, Object, Object)

將字串中的格式專案取代為三個指定物件的字串表示。

Format(IFormatProvider, String, Object, Object)

將字串中的格式專案取代為兩個指定物件的字串表示。 參數提供特定文化特性的格式資訊。

Format(String, Object, Object)

將字串中的格式專案取代為兩個指定物件的字串表示。

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)

以指定物件的字串表示取代字串中的一或多個格式專案。

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

物件,提供特定文化特性的格式資訊。

format
String

複合格式字串

args
Object[]

對象陣列,其中包含要格式化的零個或多個物件。

傳回

format 複本,其中格式專案已由 args中對應物件的字串表示所取代。

例外狀況

formatargsnull

format 無效。

-或-

格式專案的索引小於零,或大於或等於 args 陣列的長度。

備註

重要

如果您的語言支援,您可以使用 插補字串,而不是呼叫 String.Format 方法,或使用 複合格式字符串。 插補字串是包含 插補表示式的字串,。 每個插補表達式都會使用表達式的值解析,並在指派字串時包含在結果字串中。 如需詳細資訊,請參閱 字串插補 (C# 參考)插補字串 (Visual Basic 參考)

這個方法會使用 複合格式設定功能,將四個或多個運算式轉換成其字串表示法,並將這些表示法內嵌在字串中。 在執行轉換時,方法會使用區分文化特性的格式或自定義格式器。 方法會藉由呼叫其 ToString(IFormatProvider) 方法,或呼叫對象的對應格式專案包含格式字串,藉由呼叫其 ToString(String,IFormatProvider) 方法,將每個 Object 自變數轉換成其字元串表示法。 如果這些方法不存在,它會呼叫物件的無參數 ToString 方法。

不過,呼叫 String.Format 方法時,不需要將焦點放在您想要呼叫的特定多載上。 相反地,您可以使用 提供區分文化特性或自定義格式的物件,以及包含一或多個格式專案的 複合格式字串 來呼叫 方法。 您會為每個格式專案指派數值索引;第一個索引從 0 開始。 除了初始字串之外,您的方法呼叫應該有與索引值一樣多的額外自變數。 例如,格式專案具有 0 和 1 索引的字串應該有 2 個自變數;具有索引 0 到 5 的其中一個應該有 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

另請參閱

適用於

.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

將字串中的格式專案取代為三個指定物件的字串表示。 參數提供特定文化特性的格式資訊。

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

物件,提供特定文化特性的格式資訊。

format
String

複合格式字串

arg0
Object

要格式化的第一個物件。

arg1
Object

要格式化的第二個物件。

arg2
Object

要格式化的第三個物件。

傳回

format 複本,格式專案已由 arg0arg1arg2的字串表示取代。

例外狀況

format null

format 無效。

-或-

格式專案的索引小於零或大於兩個。

備註

重要

如果您的語言支援,您可以使用 插補字串,而不是呼叫 String.Format 方法,或使用 複合格式字符串。 插補字串是包含 插補表示式的字串,。 每個插補表達式都會使用表達式的值解析,並在指派字串時包含在結果字串中。 如需詳細資訊,請參閱 字串插補 (C# 參考)插補字串 (Visual Basic 參考)

此方法使用 複合格式設定功能,將三個表達式轉換成其字串表示法,並將這些表示法內嵌在字串中。 在執行轉換時,方法會使用區分文化特性的格式或自定義格式器。 方法會藉由呼叫其 ToString(IFormatProvider) 方法,或呼叫對象的對應格式專案包含格式字串,藉由呼叫其 ToString(String,IFormatProvider) 方法,將每個 Object 自變數轉換成其字元串表示法。 如果這些方法不存在,它會呼叫物件的無參數 ToString 方法。

不過,呼叫 String.Format 方法時,不需要將焦點放在您想要呼叫的特定多載上。 相反地,您可以使用 提供區分文化特性或自定義格式的物件,以及包含一或多個格式專案的 複合格式字串 來呼叫 方法。 您會為每個格式專案指派數值索引;第一個索引從 0 開始。 除了初始字串之外,您的方法呼叫應該有與索引值一樣多的額外自變數。 例如,格式專案具有 0 和 1 索引的字串應該有 2 個自變數;具有索引 0 到 5 的其中一個應該有 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

將字串中的格式專案取代為三個指定物件的字串表示。

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);

參數

format
String

複合格式字串

arg0
Object

要格式化的第一個物件。

arg1
Object

要格式化的第二個物件。

arg2
Object

要格式化的第三個物件。

傳回

format 複本,格式專案已由 arg0arg1arg2的字串表示取代。

例外狀況

format null

format 無效。

-或-

格式專案的索引小於零或大於兩個。

備註

重要

如果您的語言支援,您可以使用 插補字串,而不是呼叫 String.Format 方法,或使用 複合格式字符串。 插補字串是包含 插補表示式的字串,。 每個插補表達式都會使用表達式的值解析,並在指派字串時包含在結果字串中。 如需詳細資訊,請參閱 字串插補 (C# 參考)插補字串 (Visual Basic 參考)

這個方法會使用 複合格式功能,將三個表達式的值轉換成其字串表示法,並將這些表示法內嵌在字串中。

不過,呼叫 String.Format 方法時,不需要將焦點放在您想要呼叫的特定多載上。 相反地,您可以使用包含一或多個格式專案的 複合格式字元串來呼叫 方法。 您會為每個格式專案指派數值索引;第一個索引從 0 開始。 除了初始字串之外,您的方法呼叫應該有與索引值一樣多的額外自變數。 例如,格式專案具有 0 和 1 索引的字串應該有 2 個自變數;具有索引 0 到 5 的其中一個應該有 6 個自變數。 語言編譯程式接著會將方法呼叫解析為 String.Format 方法的特定多載。

如需使用 String.Format 方法的詳細檔,請參閱 開始使用 String.Format 方法我呼叫哪一種方法?

範例:格式化三個自變數

這個範例會使用 Format(String, Object, Object, Object) 方法來建立字串,說明布爾值 And 運算的結果,並具有兩個整數值。 請注意,格式字串包含六個格式專案,但方法在其參數清單中只有三個專案,因為每個專案都是以兩種不同的方式格式化。

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 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

將字串中的格式專案取代為兩個指定物件的字串表示。 參數提供特定文化特性的格式資訊。

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

物件,提供特定文化特性的格式資訊。

format
String

複合格式字串

arg0
Object

要格式化的第一個物件。

arg1
Object

要格式化的第二個物件。

傳回

format 複本,其中格式專案會由 arg0arg1的字串表示所取代。

例外狀況

format null

format 無效。

-或-

格式專案的索引不是零或一個。

備註

重要

如果您的語言支援,您可以使用 插補字串,而不是呼叫 String.Format 方法,或使用 複合格式字符串。 插補字串是包含 插補表示式的字串,。 每個插補表達式都會使用表達式的值解析,並在指派字串時包含在結果字串中。 如需詳細資訊,請參閱 字串插補 (C# 參考)插補字串 (Visual Basic 參考)

這個方法會使用 複合格式功能,將兩個運算式轉換成其字串表示法,並將這些表示法內嵌在字串中。 在執行轉換時,方法會使用區分文化特性的格式或自定義格式器。 方法會藉由呼叫其 ToString(IFormatProvider) 方法,或呼叫對象的對應格式專案包含格式字串,藉由呼叫其 ToString(String,IFormatProvider) 方法,將每個 Object 自變數轉換成其字元串表示法。 如果這些方法不存在,它會呼叫物件的無參數 ToString 方法。

不過,呼叫 String.Format 方法時,不需要將焦點放在您想要呼叫的特定多載上。 相反地,您可以使用 提供區分文化特性或自定義格式的物件,以及包含一或多個格式專案的 複合格式字串 來呼叫 方法。 您會為每個格式專案指派數值索引;第一個索引從 0 開始。 除了初始字串之外,您的方法呼叫應該有與索引值一樣多的額外自變數。 例如,格式專案具有 0 和 1 索引的字串應該有 2 個自變數;具有索引 0 到 5 的其中一個應該有 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

將字串中的格式專案取代為兩個指定物件的字串表示。

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

參數

format
String

複合格式字串

arg0
Object

要格式化的第一個物件。

arg1
Object

要格式化的第二個物件。

傳回

format 複本,其中格式專案會由 arg0arg1的字串表示所取代。

例外狀況

format null

format 無效。

-或-

格式專案的索引不是零或一個。

備註

重要

如果您的語言支援,您可以使用 插補字串,而不是呼叫 String.Format 方法,或使用 複合格式字符串。 插補字串是包含 插補表示式的字串,。 每個插補表達式都會使用表達式的值解析,並在指派字串時包含在結果字串中。 如需詳細資訊,請參閱 字串插補 (C# 參考)插補字串 (Visual Basic 參考)

此方法會使用 複合格式設定功能,將兩個表達式的值轉換成其字串表示法,並將這些表示法內嵌在字串中。

不過,呼叫 String.Format 方法時,不需要將焦點放在您想要呼叫的特定多載上。 相反地,您可以使用包含一或多個格式專案的 複合格式字元串來呼叫 方法。 您會為每個格式專案指派數值索引;第一個索引從 0 開始。 除了初始字串之外,您的方法呼叫應該有與索引值一樣多的額外自變數。 例如,格式專案具有 0 和 1 索引的字串應該有 2 個自變數;具有索引 0 到 5 的其中一個應該有 6 個自變數。 語言編譯程式接著會將方法呼叫解析為 String.Format 方法的特定多載。

如需使用 String.Format 方法的詳細檔,請參閱 開始使用 String.Format 方法我呼叫哪一種方法?

範例:格式化兩個自變數

這個範例會使用 Format(String, Object, Object) 方法來顯示儲存在泛型 Dictionary<TKey,TValue> 對象中的時間和溫度數據。 請注意,格式字串有三個格式項目,不過只有兩個物件可格式化。 這是因為清單中的第一個物件(日期和時間值)是由兩個格式專案使用:第一個格式專案會顯示時間,而第二個則顯示日期。

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 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>

要格式化的物件範圍。

傳回

格式化的字串。

例外狀況

format null

格式專案的索引大於或等於提供的自變數數目。

適用於

.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

物件,提供特定文化特性的格式資訊。

format
String

複合格式字串

arg0
Object

要格式化的物件。

傳回

format 的複本,其中格式專案或專案已由 arg0的字串表示所取代。

例外狀況

format null

format 無效。

-或-

格式專案的索引不是零。

備註

重要

如果您的語言支援,您可以使用 插補字串,而不是呼叫 String.Format 方法,或使用 複合格式字符串。 插補字串是包含 插補表示式的字串,。 每個插補表達式都會使用表達式的值解析,並在指派字串時包含在結果字串中。 如需詳細資訊,請參閱 字串插補 (C# 參考)插補字串 (Visual Basic 參考)

這個方法會使用 複合格式功能,將表達式的值轉換成其字串表示法,並將該表示法內嵌在字串中。 在執行轉換時,方法會使用區分文化特性的格式或自定義格式器。 方法會藉由呼叫 ToString(IFormatProvider) 方法,或藉由呼叫其 ToString(String,IFormatProvider) 方法,將 arg0 轉換成字元串表示法。 如果這些方法不存在,它會呼叫物件的無參數 ToString 方法。

不過,呼叫 String.Format 方法時,不需要將焦點放在您想要呼叫的特定多載上。 相反地,您可以使用 提供區分文化特性或自定義格式的物件,以及包含一或多個格式專案的 複合格式字串 來呼叫 方法。 您會為每個格式專案指派數值索引;第一個索引從 0 開始。 除了初始字串之外,您的方法呼叫應該有與索引值一樣多的額外自變數。 例如,格式專案具有 0 和 1 索引的字串應該有 2 個自變數;具有索引 0 到 5 的其中一個應該有 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

物件,提供特定文化特性的格式資訊。

format
String

複合格式字串

args
ReadOnlySpan<Object>

物件範圍,包含零個或多個要格式化的物件。

傳回

format 複本,其中格式專案已由 args中對應物件的字串表示所取代。

適用於

.NET 9
產品 版本
.NET 9

Format(String, ReadOnlySpan<Object>)

將指定字串中的格式專案取代為指定範圍中對應物件的字串表示。

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

參數

format
String

複合格式字串

args
ReadOnlySpan<Object>

物件範圍,包含零個或多個要格式化的物件。

傳回

format 複本,其中格式專案已由 args中對應物件的字串表示所取代。

適用於

.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);

參數

format
String

複合格式字串

args
Object[]

對象陣列,其中包含要格式化的零個或多個物件。

傳回

format 複本,其中格式專案已由 args中對應物件的字串表示所取代。

例外狀況

formatargsnull

format 無效。

-或-

格式專案的索引小於零,或大於或等於 args 陣列的長度。

備註

重要

如果您的語言支援,您可以使用 插補字串,而不是呼叫 String.Format 方法,或使用 複合格式字符串。 插補字串是包含 插補表示式的字串,。 每個插補表達式都會使用表達式的值解析,並在指派字串時包含在結果字串中。 如需詳細資訊,請參閱 字串插補 (C# 參考)插補字串 (Visual Basic 參考)

這個方法會使用 複合格式設定功能,將四個或多個表達式的值轉換成其字串表示法,並將這些表示法內嵌在字串中。 由於 args 參數是以 System.ParamArrayAttribute 屬性標示,因此您可以將對象當作個別自變數或 Object 陣列傳遞至 方法。

不過,呼叫 String.Format 方法時,不需要將焦點放在您想要呼叫的特定多載上。 相反地,您可以使用包含一或多個格式專案的 複合格式字元串來呼叫 方法。 您會為每個格式專案指派數值索引;第一個索引從 0 開始。 除了初始字串之外,您的方法呼叫應該有與索引值一樣多的額外自變數。 例如,格式專案具有 0 和 1 索引的字串應該有 2 個自變數;具有索引 0 到 5 的其中一個應該有 6 個自變數。 語言編譯程式接著會將方法呼叫解析為 String.Format 方法的特定多載。

如需使用 String.Format 方法的詳細檔,請參閱 開始使用 String.Format 方法我呼叫哪一種方法?

範例:格式化三個以上的自變數

此範例會建立字串,其中包含特定日期中高溫和低溫的數據。 複合格式字串在 C# 範例中有五個格式專案,Visual Basic 範例中有 6 個格式專案。 其中兩個格式專案會定義其對應值字串表示的寬度,而第一個格式專案也包含標準日期和時間格式字串。

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 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

以指定物件的字串表示取代字串中的一或多個格式專案。

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

參數

format
String

複合格式字串

arg0
Object

要格式化的物件。

傳回

format 複本,其中任何格式專案會取代為 arg0的字串表示。

例外狀況

format null

format 中的格式項目無效。

-或-

格式專案的索引不是零。

備註

重要

如果您的語言支援,您可以使用 插補字串,而不是呼叫 String.Format 方法,或使用 複合格式字符串。 插補字串是包含 插補表示式的字串,。 每個插補表達式都會使用表達式的值解析,並在指派字串時包含在結果字串中。 如需詳細資訊,請參閱 字串插補 (C# 參考)插補字串 (Visual Basic 參考)

這個方法會使用 複合格式功能,將表達式的值轉換成其字串表示法,並將該表示法內嵌在字串中。

不過,呼叫 String.Format 方法時,不需要將焦點放在您想要呼叫的特定多載上。 相反地,您可以使用包含一或多個格式專案的 複合格式字元串來呼叫 方法。 您會為每個格式專案指派數值索引;第一個索引從 0 開始。 除了初始字串之外,您的方法呼叫應該有與索引值一樣多的額外自變數。 例如,格式專案具有 0 和 1 索引的字串應該有 2 個自變數;具有索引 0 到 5 的其中一個應該有 6 個自變數。 語言編譯程式接著會將方法呼叫解析為 String.Format 方法的特定多載。

如需使用 String.Format 方法的詳細檔,請參閱 開始使用 String.Format 方法我呼叫哪一種方法?

範例:格式化單一自變數

下列範例會使用 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 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[]

要格式化的物件陣列。

傳回

格式化的字串。

例外狀況

formatargsnull

格式專案的索引大於或等於提供的自變數數目。

適用於

.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

要格式化的第二個物件型別。

TArg2

要格式化的第三個物件型別。

參數

provider
IFormatProvider

物件,提供特定文化特性的格式資訊。

arg0
TArg0

要格式化的第一個物件。

arg1
TArg1

要格式化的第二個物件。

arg2
TArg2

要格式化的第三個物件。

傳回

格式化的字串。

例外狀況

format null

格式專案的索引大於或等於提供的自變數數目。

適用於

.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

要格式化的第二個物件型別。

參數

provider
IFormatProvider

物件,提供特定文化特性的格式資訊。

arg0
TArg0

要格式化的第一個物件。

arg1
TArg1

要格式化的第二個物件。

傳回

格式化的字串。

例外狀況

format null

格式專案的索引大於或等於提供的自變數數目。

適用於

.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

要格式化的第一個物件。

傳回

格式化的字串。

例外狀況

format null

格式專案的索引大於或等於提供的自變數數目。

適用於

.NET 9 和 .NET 8
產品 版本
.NET 8, 9