了解String.Format C#函数
.NET Framework中的静态字符串类提供了多个实用程序函数,可用于在应用程序中创建,修改和操作字符串类型数据。String.Format方法是一种这样的实用程序方法,可以利用灵活地应用于串类型数据的正确和鲁棒格式。string.format方法具有多个过载,该过载具有相同目标的变化函数 - 根据应用程序的要求格式化字符串。
string.format如何工作
String.Format是一种静态方法,返回格式化的字符串。为了指定元素标记,使用了花束括号。在卷曲支架内部,位置标记分为由冒号分开的两个部分“:”。在结肠的左侧,提到要显示的对象的实际位置,并在结肠的右侧,描述格式选项。目前可能看起来很困惑,但以下示例演示了字符串格式的概念实际工作。
一个基本的string.format C#示例
字符串名称=“James”;int年龄= 20;DateTime年=新的DateTime(1994,2,14);字符串句= string.format(“{0}是{1} {2:YYYY}”,名称,年龄,年);console.writeline(句子);
在上面的示例中,声明了三个变量:字符串命名名称,名为Age和DateTime变量的字符串命名为。然后,已声明字符串类型可变句子,其存储由String.Format方法在“等于”符号的右侧的字符串返回的格式字符串。
String.format中的参数字符串以{0}开始,该{0}对应于第一个对象。这是一个位置标记,它告诉编译器应该由传递给String.format方法的第一个对象替换。位置标记{1}表示第二个对象将在返回的字符串中插入此位置。
第三个位置标记略有不同,看起来像{2:yyyy}。列的左侧的部分表示在冒号后的前两个位置标记的情况下的位置是格式的yyyy。这意味着第三个对象应该存储在这个位置的对象,它应该只能显示年份。
实际对象在格式化的字符串之后插入序列中。姓名将显示在{0}的位置,年龄将显示在{1}的位置和年份将显示在{2:yyyy}的位置。
如果您编译并运行上面的代码,则将在控制台上显示以下字符串:
詹姆斯于1994年20岁
从年度变量含有年,月和日,而且只显示了这一点,这是显而易见的。这是由于年度对象在String.format C#方法中被格式化为仅显示年份。
数字格式化通过String.Format在C#中
整数,浮点数,双倍和其他数字数据也可以通过String.Format方法格式化。在以下示例中,Double类型的值已使用String.format方法转换为百分比:
字符串名称=“James”;双标记= 0.889;字符串课程=“英语”;字符串句子= string.format(“{0}在{2}中获得{1:0.00%}”,名称,标记,课程);console.writeline(句子);
在上面的代码行中,有三个变量。其中一个是双重类型,命名标记。该变量包含双值。string.format方法中,它已被格式化为{1:0.00%}。这意味着这将是对象序列中的第二个对象。
格式的'%'符号将值乘以100.十进制右侧有两个零;在输出中,所示的值将精确到两个小数位。小数位左侧的零不起作用,因为如果乘以100,则结果值大于9,它将自动占用左侧的两个小数位。代码的输出将如下所示:
詹姆斯在英语中获得了88.90%的标记
使用String.Format C#方法填充
填充可以在要格式化的对象的左侧或右侧添加。例如,在以下示例中,在第一对象的右侧添加15个空间的填充,并且在第二个对象的左侧添加了15个空格的填充:
字符串名称=“James”;字符串课程=“英语”;字符串句子= string.format(“{0,-15}传递给{1,15}”,姓名,课程);console.writeline(句子);
在输出中,将在名称变量的右侧添加15个单元的空间。负填充表明,空间将被添加到对象的右侧,而正填充会增加作业左侧的空间。课程左侧将添加15个单位的空间。
通过ToString方法格式化字符串
您不应该总是使用字符串.Format方法来格式化目的。特别是,如果只有一个值格式化,则使用ToString方法并将格式传递在其参数中更方便。以下示例通过ToString方法格式化DateTime类型变量:
DateTime日期=新的DateTime(2008,6,4,9,30,15);字符串句= date.tostring(“DDD D MMM HH:MM,YYYY”);
在上面的示例中,通过将格式传递给ToString方法作为参数,格式化了DateTime类型变量。
要通过String.Format方法指定上面的格式,请使用以下代码行:
句子= string.format(“{0:ddd d mmm hh:mm,yyyy}”,日期);
从上面的示例中可以看出,对于格式化单个字符串值,ToString方法优选在String.format方法上。但是,在多个值的情况下,使用后者更方便。