System.String.Format 方法 (String, Object[])
方法描述
将指定字符串中的格式项替换为指定数组中相应对象的字符串表示形式。
语法定义(C# System.String.Format 方法 (String, Object[]) 的用法)
public static string Format( string format, params Object[] args )
参数/返回值
参数值/返回值 | 参数类型/返回类型 | 参数描述/返回描述 |
---|---|---|
format | System-String | 符合格式字符串(参见“备注”)。 |
args | System-Object[] | 一个对象数组,其中包含零个或多个要设置格式的对象。 |
返回值 | System.String | format 的副本,其中的格式项已替换为 args 中相应对象的字符串表示形式。 |
提示和注释
此方法使用 .NET Framework 的复合格式设置功能将对象的值转换为其文本表示形式,并将该表示形式嵌入字符串中。 .NET Framework 提供了广泛的格式设置支持,下面的格式设置主题中对此有更详细的描述:
有关 Format、AppendFormat 等方法以及 WriteLine 的某些重载所支持的复合格式设置功能的更多信息,请参见复合格式。
有关数值格式说明符的更多信息,请参见标准数字格式字符串和自定义数字格式字符串。
有关日期和时间格式说明符的更多信息,请参见标准日期和时间格式字符串和自定义日期和时间格式字符串。
有关枚举格式说明符的更多信息,请参见枚举格式字符串。
有关格式设置的更多信息,请参见格式化类型。
format 参数由零或多个文本序列与零或多个索引占位符混合组成,其中索引占位符称为格式项,对应于与此方法的参数列表中的对象。 格式设置过程将每个格式项替换为相应对象的字符串表示形式。
格式项的语法如下:
{index[,length][:formatString]}
方括号中的元素是可选的。 下表描述每个元素。 有关复合格式设置功能(包括格式项的语法)的更多信息,请参见复合格式。
元素
说明
索引
要设置格式的对象的参数列表中的位置(从零开始)。 如果由 index 指定的对象为 null,则格式项将被 String.Empty 替换。 如果 index 位置没有参数,将引发 FormatException。
,length
参数的字符串表示形式中包含的最小字符数。 如果该值是正的,则参数右对齐;如果该值是负的,则参数左对齐。
:formatString
要设置格式的对象支持的标准或自定义格式字符串。 formatString 的可能值与该对象的 ToString(format) 方法支持的值相同。 如果没有指定 formatString,并且要设置格式的对象实现了 IFormattable 接口,则将传递 null 作为用作 IFormattable.ToString 格式字符串的 format 参数的值。
注意
有关日期和时间值使用的标准和自定义格式字符串的信息,请参见标准日期和时间格式字符串和自定义日期和时间格式字符串。 有关数值使用的标准和自定义格式字符串的信息,请参见标准数字格式字符串和自定义数字格式字符串。 有关枚举使用的标准格式字符串的信息,请参见枚举格式字符串。
必须使用前导大括号字符和尾部大括号字符,即“{”和“}”。 若要在 format 中指定单个大括号字符,请指定两个前导大括号字符或尾部大括号字符;即“{{”或“}}”。
如果 format 的值为“Thank you for your purchase of {0:####} copies of Microsoft®.NET (Core Reference).”,且 arg[0] 是值为 123 的 Int16 ,则返回值将为:
“Thank you for your purchase of 123 copies of Microsoft®.NET (Core Reference).”
如果 format 的值为“Brad's dog has {0,-8:G} fleas.”,arg[0] 是值为 42 的 Int16(在此示例中,下划线表示填充空格),则返回值为:
“Brad's dog has 42______ fleas.”
System.String.Format 方法 (String, Object[])例子
两个格式项定义其相应值的字符串表示形式的宽度,第一个格式项还包括标准日期和时间格式字符串。
using System; public class Example { public static void Main() { 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 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)
异常
异常 | 异常描述 |
---|---|
ArgumentNullException | format 或 args 为 null。 |
FormatException |
|
版本信息
.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:
适用平台
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。