string.format用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了string.format用法相关的知识,希望对你有一定的参考价值。

请举简单例子说明vb2005中string.format的参数和用法,谢谢!

参数
format
类型:System..::.String

复合格式字符串。

args
类型:array<System..::.Object>[]()[]

包含零个或多个要格式化的对象的 Object 数组。

返回值
类型:System..::.String

format 的一个副本,其中格式项已替换为 args 中相应 Object 实例的 String 等效项。

异常
异常 条件
ArgumentNullException format 或 args 为 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing)。

FormatException format 无效。

- 或 -

用于指示要格式化的参数的数字小于零,或者大于等于 args 数组的长度。

备注
此方法使用 .NET Framework 的复合格式设置功能将对象的值转换为其文本表示形式,并将该表示形式嵌入字符串中。.NET Framework 提供了广泛的格式设置支持,下面的格式设置主题中对此有更详细的描述。

有关 Format、AppendFormat 等方法以及 WriteLine 的某些重载所支持的复合格式设置功能的更多信息,请参见复合格式设置。

有关数值格式说明符的更多信息,请参见标准数字格式字符串和自定义数字格式字符串。

有关日期和时间格式说明符的更多信息,请参见标准日期和时间格式字符串和自定义日期和时间格式字符串。

有关枚举格式说明符的更多信息,请参见枚举格式字符串。

有关格式设置的更多信息,请参见为类型设置格式和格式设置概述。

format 参数由零个或多个文本序列与零个或多个索引占位符混合组成,其中索引占位符称为格式项,它们与此方法的参数列表中的对象相对应。格式设置过程将每个格式项替换为相应对象值的文本表示形式。

格式项的语法是 索引[,对齐方式][:格式字符串],它指定了一个强制索引、格式化文本的可选长度和对齐方式,以及格式说明符字符的可选字符串,其中格式说明符字符用于控制如何设置相应对象的值的格式。格式项的组成部分包括:

索引
从零开始的整数,指示对象列表中要格式化的元素。如果由索引指定的对象为 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing),则格式项将被空字符串 ("") 替换。

对齐方式
可选整数,指示包含格式化值的区域的最小宽度。如果格式化值的长度小于对齐方式,则用空格填充该区域。如果对齐方式为负,则格式化值将在该区域中左对齐;如果对齐方式为正,则格式化值将右对齐。如果没有指定对齐方式,则该区域的长度为格式化值的长度。如果指定对齐方式,则需要使用逗号。

格式字符串
可选的格式说明符字符串。如果没有指定格式字符串,并且对应的参数实现了 IFormattable 接口,则将 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing) 用作 IFormattable..::.ToString 格式字符串。因此,IFormattable..::.ToString 的所有实现都必须允许 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing) 作为格式字符串,并以 String 对象的形式返回对象表示形式的默认格式设置。如果指定格式字符串,则需要使用冒号。

必须使用前导大括号字符和尾部大括号字符,即“”和“”。若要在 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.”

示例
下面的代码示例演示数字、日期和枚举的标准格式设置说明符。

Visual Basic 复制代码
' This code example demonstrates the String.Format() method.
' This example uses the provider parameter to supply formatting
' information using the invariant culture.

Imports System.Globalization

Class Sample
Public Enum Color
Yellow = 1
Blue = 2
Green = 3
End Enum 'Color

Private Shared thisDate As DateTime = DateTime.Now

Public Shared Sub Main()

' Store the output of the String.Format method in a string.
Dim s As String = ""

Console.Clear()

' Format a negative integer or floating-point number in various ways.
Console.WriteLine("Standard Numeric Format Specifiers")
s = String.Format(CultureInfo.InvariantCulture, _
"(C) Currency: . . . . . . . . 0:C" & vbCrLf & _
"(D) Decimal:. . . . . . . . . 0:D" & vbCrLf & _
"(E) Scientific: . . . . . . . 1:E" & vbCrLf & _
"(F) Fixed point:. . . . . . . 1:F" & vbCrLf & _
"(G) General:. . . . . . . . . 0:G" & vbCrLf & _
" (default):. . . . . . . . 0 (default = 'G')" & vbCrLf & _
"(N) Number: . . . . . . . . . 0:N" & vbCrLf & _
"(P) Percent:. . . . . . . . . 1:P" & vbCrLf & _
"(R) Round-trip: . . . . . . . 1:R" & vbCrLf & _
"(X) Hexadecimal:. . . . . . . 0:X" & vbCrLf, _
- 123, - 123.45F)
Console.WriteLine(s)

' Format the current date in various ways.
Console.WriteLine("Standard DateTime Format Specifiers")
s = String.Format(CultureInfo.InvariantCulture.DateTimeFormat, _
"(d) Short date: . . . . . . . 0:d" & vbCrLf & _
"(D) Long date:. . . . . . . . 0:D" & vbCrLf & _
"(t) Short time: . . . . . . . 0:t" & vbCrLf & _
"(T) Long time:. . . . . . . . 0:T" & vbCrLf & _
"(f) Full date/short time: . . 0:f" & vbCrLf & _
"(F) Full date/long time:. . . 0:F" & vbCrLf & _
"(g) General date/short time:. 0:g" & vbCrLf & _
"(G) General date/long time: . 0:G" & vbCrLf & _
" (default):. . . . . . . . 0 (default = 'G')" & vbCrLf & _
"(M) Month:. . . . . . . . . . 0:M" & vbCrLf & _
"(R) RFC1123:. . . . . . . . . 0:R" & vbCrLf & _
"(s) Sortable: . . . . . . . . 0:s" & vbCrLf & _
"(u) Universal sortable: . . . 0:u (invariant)" & vbCrLf & _
"(U) Universal sortable: . . . 0:U" & vbCrLf & _
"(Y) Year: . . . . . . . . . . 0:Y" & vbCrLf, _
thisDate)
Console.WriteLine(s)

' Format a Color enumeration value in various ways.
Console.WriteLine("Standard Enumeration Format Specifiers")
s = String.Format(CultureInfo.InvariantCulture, _
"(G) General:. . . . . . . . . 0:G" & vbCrLf & _
" (default):. . . . . . . . 0 (default = 'G')" & vbCrLf & _
"(F) Flags:. . . . . . . . . . 0:F (flags or integer)" & vbCrLf & _
"(D) Decimal number: . . . . . 0:D" & vbCrLf & _
"(X) Hexadecimal:. . . . . . . 0:X" & vbCrLf, _
Color.Green)
Console.WriteLine(s)
End Sub 'Main
End Class 'Sample
'
' This example displays the following output to the console:
'
' Standard Numeric Format Specifiers
' (C) Currency: . . . . . . . . (123.00)
' (D) Decimal:. . . . . . . . . -123
' (E) Scientific: . . . . . . . -1.234500E+002
' (F) Fixed point:. . . . . . . -123.45
' (G) General:. . . . . . . . . -123
' (default):. . . . . . . . -123 (default = 'G')
' (N) Number: . . . . . . . . . -123.00
' (P) Percent:. . . . . . . . . -12,345.00 %
' (R) Round-trip: . . . . . . . -123.45
' (X) Hexadecimal:. . . . . . . FFFFFF85
'
' Standard DateTime Format Specifiers
' (d) Short date: . . . . . . . 07/09/2007
' (D) Long date:. . . . . . . . Monday, 09 July 2007
' (t) Short time: . . . . . . . 13:42
' (T) Long time:. . . . . . . . 13:42:50
' (f) Full date/short time: . . Monday, 09 July 2007 13:42
' (F) Full date/long time:. . . Monday, 09 July 2007 13:42:50
' (g) General date/short time:. 07/09/2007 13:42
' (G) General date/long time: . 07/09/2007 13:42:50
' (default):. . . . . . . . 07/09/2007 13:42:50 (default = 'G')
' (M) Month:. . . . . . . . . . July 09
' (R) RFC1123:. . . . . . . . . Mon, 09 Jul 2007 13:42:50 GMT
' (s) Sortable: . . . . . . . . 2007-07-09T13:42:50
' (u) Universal sortable: . . . 2007-07-09 13:42:50Z (invariant)
' (U) Universal sortable: . . . Monday, 09 July 2007 20:42:50
' (Y) Year: . . . . . . . . . . 2007 July
'
' Standard Enumeration Format Specifiers
' (G) General:. . . . . . . . . Green
' (default):. . . . . . . . Green (default = 'G')
' (F) Flags:. . . . . . . . . . Green (flags or integer)
' (D) Decimal number: . . . . . 3
' (X) Hexadecimal:. . . . . . . 00000003

C# 复制代码
// This code example demonstrates the String.Format() method.
// Formatting for this example uses the "en-US" culture.

using System;
using System.Globalization;

class Sample

enum Color Yellow = 1, Blue, Green;
static DateTime thisDate = DateTime.Now;

public static void Main()

// Store the output of the String.Format method in a string.
string s = "";

Console.Clear();

// Format a negative integer or floating-point number in various ways.
Console.WriteLine("Standard Numeric Format Specifiers");
s = String.Format(CultureInfo.InvariantCulture,
"(C) Currency: . . . . . . . . 0:C\n" +
"(D) Decimal:. . . . . . . . . 0:D\n" +
"(E) Scientific: . . . . . . . 1:E\n" +
"(F) Fixed point:. . . . . . . 1:F\n" +
"(G) General:. . . . . . . . . 0:G\n" +
" (default):. . . . . . . . 0 (default = 'G')\n" +
"(N) Number: . . . . . . . . . 0:N\n" +
"(P) Percent:. . . . . . . . . 1:P\n" +
"(R) Round-trip: . . . . . . . 1:R\n" +
"(X) Hexadecimal:. . . . . . . 0:X\n",
-123, -123.45f);
Console.WriteLine(s);

// Format the current date in various ways.
Console.WriteLine("Standard DateTime Format Specifiers");
s = String.Format(CultureInfo.InvariantCulture.DateTimeFormat,
"(d) Short date: . . . . . . . 0:d\n" +
"(D) Long date:. . . . . . . . 0:D\n" +
"(t) Short time: . . . . . . . 0:t\n" +
"(T) Long time:. . . . . . . . 0:T\n" +
"(f) Full date/short time: . . 0:f\n" +
"(F) Full date/long time:. . . 0:F\n" +
"(g) General date/short time:. 0:g\n" +
"(G) General date/long time: . 0:G\n" +
" (default):. . . . . . . . 0 (default = 'G')\n" +
"(M) Month:. . . . . . . . . . 0:M\n" +
"(R) RFC1123:. . . . . . . . . 0:R\n" +
"(s) Sortable: . . . . . . . . 0:s\n" +
"(u) Universal sortable: . . . 0:u (invariant)\n" +
"(U) Universal sortable: . . . 0:U\n" +
"(Y) Year: . . . . . . . . . . 0:Y\n",
thisDate);
Console.WriteLine(s);

// Format a Color enumeration value in various ways.
Console.WriteLine("Standard Enumeration Format Specifiers");
s = String.Format(CultureInfo.InvariantCulture,
"(G) General:. . . . . . . . . 0:G\n" +
" (default):. . . . . . . . 0 (default = 'G')\n" +
"(F) Flags:. . . . . . . . . . 0:F (flags or integer)\n" +
"(D) Decimal number: . . . . . 0:D\n" +
"(X) Hexadecimal:. . . . . . . 0:X\n",
Color.Green);
Console.WriteLine(s);


/*
This example displays the following output to the console:

Standard Numeric Format Specifiers
(C) Currency: . . . . . . . . (123.00)
(D) Decimal:. . . . . . . . . -123
(E) Scientific: . . . . . . . -1.234500E+002
(F) Fixed point:. . . . . . . -123.45
(G) General:. . . . . . . . . -123
(default):. . . . . . . . -123 (default = 'G')
(N) Number: . . . . . . . . . -123.00
(P) Percent:. . . . . . . . . -12,345.00 %
(R) Round-trip: . . . . . . . -123.45
(X) Hexadecimal:. . . . . . . FFFFFF85

Standard DateTime Format Specifiers
(d) Short date: . . . . . . . 07/09/2007
(D) Long date:. . . . . . . . Monday, 09 July 2007
(t) Short time: . . . . . . . 13:48
(T) Long time:. . . . . . . . 13:48:05
(f) Full date/short time: . . Monday, 09 July 2007 13:48
(F) Full date/long time:. . . Monday, 09 July 2007 13:48:05
(g) General date/short time:. 07/09/2007 13:48
(G) General date/long time: . 07/09/2007 13:48:05
(default):. . . . . . . . 07/09/2007 13:48:05 (default = 'G')
(M) Month:. . . . . . . . . . July 09
(R) RFC1123:. . . . . . . . . Mon, 09 Jul 2007 13:48:05 GMT
(s) Sortable: . . . . . . . . 2007-07-09T13:48:05
(u) Universal sortable: . . . 2007-07-09 13:48:05Z (invariant)
(U) Universal sortable: . . . Monday, 09 July 2007 20:48:05
(Y) Year: . . . . . . . . . . 2007 July

Standard Enumeration Format Specifiers
(G) General:. . . . . . . . . Green
(default):. . . . . . . . Green (default = 'G')
(F) Flags:. . . . . . . . . . Green (flags or integer)
(D) Decimal number: . . . . . 3
(X) Hexadecimal:. . . . . . . 00000003
*/
参考技术A String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。
String.Format (String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。

String.Format (IFormatProvider, String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。指定的参数提供区域性特定的格式设置信息。

String.Format (String, Object, Object) 将指定的 String 中的格式项替换为两个指定的 Object 实例的值的文本等效项。

String.Format (String, Object, Object, Object) 将指定的 String 中的格式项替换为三个指定的 Object 实例的值的文本等效项。
参考技术B string str=string.Format("字符串和参数0 1……",value1,value2);
0对应逗号后第一个值 如 value1
其他类推
这是最常用的 返回指定格式的 字符串
参考技术C MessageBox.Show(string.Format("不存在用户0,请重新输入!",
textBox2.Text)); 在format规定的字符串里,有数字这样的占位符,数字是几,就代表是后面的第几个参数。所以在这里是0,代表把参数textBox2.Text放进字符串中的这个位置。就等同于 MessageBox.Show("不存在用户"
+ textBox2.Text
+
",请重新输入!"); 下面的sql也是一样到道理。将state的值替换到0的位置。 因为参数可以是个数组,所以才会有012……分别替换你的参数数组里第几个值。
参考技术D string.format(str,text,....)
str 是字符串,0。。是字符串中的参数的值
如:string.format("select * from aa where id=0 and name='1'",txtid.text,txtname.text);

C# string.format用法详解

String.Format 方法的几种定义:

String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。
String.Format (String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。
String.Format (IFormatProvider, String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。指定的参数提供区域性特定的格式设置信息。
String.Format (String, Object, Object) 将指定的 String 中的格式项替换为两个指定的 Object 实例的值的文本等效项。 
String.Format (String, Object, Object, Object) 将指定的 String 中的格式项替换为三个指定的 Object 实例的值的文本等效项。

常用的格式化数值结果表

字符

说明

示例

输出

C 货币 string.Format("{0:C3}", 2) $2.000
D 十进制 string.Format("{0:D3}", 2) 002
E 科学计数法 1.20E+001 1.20E+001
G 常规 string.Format("{0:G}", 2) 2
N 用分号隔开的数字 string.Format("{0:N}", 250000) 250,000.00
X 十六进制 string.Format("{0:X000}", 12) C
    string.Format("{0:000.000}", 12.2) 012.200

常用的几种实例

1、字符串的数字格式

1
2
3
4
5
6
7
string str1 =string.Format("{0:N1}",56789);               //result: 56,789.0
string str2 =string.Format("{0:N2}",56789);               //result: 56,789.00
string str3 =string.Format("{0:N3}",56789);               //result: 56,789.000
string str8 =string.Format("{0:F1}",56789);               //result: 56789.0
string str9 =string.Format("{0:F2}",56789);               //result: 56789.00
string str11 =(56789 / 100.0).ToString("#.##");           //result: 567.89
string str12 =(56789 / 100).ToString("#.##");             //result: 567

2、格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)

1
string.Format("{0:C}",0.2)

结果为:¥0.20 (英文操作系统结果:$0.20)

默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数

1
string.Format("{0:C1}",23.15)

结果为:¥23.2 (截取会自动四舍五入)

格式化多个Object实例

1
string.Format("市场价:{0:C},优惠价{1:C}",23.15,19.82)

3、格式化十进制的数字(格式化成固定的位数,位数不能少于未格式化前,只支持整形)

1
2
string.Format("{0:D3}",23) //结果为:023
string.Format("{0:D2}",1223) //结果为:1223,(精度说明符指示结果字符串中所需的最少数字个数。)

 4、用分号隔开的数字,并指定小数点后的位数

1
2
string.Format("{0:N}", 14200) //结果为:14,200.00 (默认为小数点后面两位)
string.Format("{0:N3}", 14200.2458) //结果为:14,200.246 (自动四舍五入)

5、格式化百分比

1
2
string.Format("{0:P}", 0.24583) //结果为:24.58% (默认保留百分的两位小数)
string.Format("{0:P1}", 0.24583) //结果为:24.6% (自动四舍五入)

6、零占位符和数字占位符

1
2
3
4
string.Format("{0:0000.00}", 12394.039) //结果为:12394.04
string.Format("{0:0000.00}", 194.039) //结果为:0194.04
string.Format("{0:###.##}", 12394.039) //结果为:12394.04
string.Format("{0:####.#}", 194.039) //结果为:194

下面的这段说明比较难理解,多测试一下实际的应用就可以明白了。

零占位符: 如果格式化的值在格式字符串中出现“0”的位置有一个数字,则此数字被复制到结果字符串中。小数点前最左边的“0”的位置和小数点后最右边的“0”的位置确定总在结果字符串中出现的数字范围。 “00”说明符使得值被舍入到小数点前最近的数字,其中零位总被舍去。
数字占位符: 如果格式化的值在格式字符串中出现“#”的位置有一个数字,则此数字被复制到结果字符串中。否则,结果字符串中的此位置不存储任何值。
请注意,如果“0”不是有效数字,此说明符永不显示“0”字符,即使“0”是字符串中唯一的数字。如果“0”是所显示的数字中的有效数字,则显示“0”字符。 “##”格式字符串使得值被舍入到小数点前最近的数字,其中零总被舍去。

7、日期格式化

1
2
3
4
5
6
7
8
9
string.Format("{0:d}",System.DateTime.Now) //结果为:2009-3-20 (月份位置不是03)
string.Format("{0:D}",System.DateTime.Now) //结果为:2009年3月20日
string.Format("{0:f}",System.DateTime.Now) //结果为:2009年3月20日 15:37
string.Format("{0:F}",System.DateTime.Now) //结果为:2009年3月20日 15:37:52
string.Format("{0:g}",System.DateTime.Now) //结果为:2009-3-20 15:38
string.Format("{0:G}",System.DateTime.Now) //结果为:2009-3-20 15:39:27
string.Format("{0:m}",System.DateTime.Now) //结果为:3月20日
string.Format("{0:t}",System.DateTime.Now) //结果为:15:41
string.Format("{0:T}",System.DateTime.Now) //结果为:15:41:50

  











以上是关于string.format用法的主要内容,如果未能解决你的问题,请参考以下文章

string.format用法

C#中string.format用法详解 [转载]

C#中string.Format 用法详解

c#string.format的用法

C# string.format用法详解

String.format()的用法