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用法的主要内容,如果未能解决你的问题,请参考以下文章