备忘(四)字符串格式化
来源:互联网 发布:怎么变漂亮知乎 编辑:程序博客网 时间:2024/06/06 03:12
将字符串格式化后输出,是应用程序中一种相当常见的操作,在很多情况下我们需要格式化字符串成一定形式便于用户的阅读。例如将日期的显示、货币的显示等。
String类提供了Format方法进行格式化的操作,针对这个方法我们进行详细的说明。Format方法提供了很多重载的版本,其中最为常用的有以下两种方式:
Public Static String format(IformatProvider provider, string format, params object[] ars)。
Public Static String format(string format, params object[] ars)。
第一种形式比第二种形式多了一个IformatProvider接口参数,它表示格式化字符串的区域形式,由于国家区域的不同字符串的显示方式也有所不同,因此我们可以根据不同的区域设置不同的格式化方式。例如美国和中国在表示货币的形式就是不同的。如果省略了这个参数那么系统会根据当前操作系统的区域来显示。那么我们该如何表示某个区域呢?我们看一下下面的实例。
知识点
Ø CultureInfo类在System.Globalization名称空间下,该类的构造函数中的参数添加的是各个区域国家的名称。常用的区域名称如下:
名称
含义
zh-cn
中国
en-US
美国
zh-hk
中国香港
en-GB
英国
Ja-JP
日本
Ø 方法中的第二个参数string format,它表示格式化的规范,它的形式如下:
{arg [, n] [: formatstring]}。其中arg表示占位符,从零开始。【,n】表示以空格填补格式化区域的宽度,n可以是正值也可以是负值。如果为正值表示格式化的值靠右对齐,负值则靠左对齐,可以省略。[: formatstring] 表示格式化字符串的形式,本例中表示货币形式。格式化字符串的形式大体可以分为三类:格式化数值、格式化日期时间和自定义数字格式化形式。如下表。
格式化数值
格式规范
名称
说明
举例
C或c
货币
将数值转换为货币的形式并能够指定所需小数的位数
string str = String.Format("{0:c3}", 125.23569)
D或d
十进制
格式化整数,指示产生字符串中,其所需的最少位数。如果有必要,数值以零不起左边规范其指定的位数。
string str = String.Format("{0:D3}", 12)。
注意:要格式化的目标必须是整数。
E或e
科学计数
将数值转换为“-d.ddd...E+ddd
”的形式,其中每个d都是0-9的数字,其位数默认为6位。
string str = String.Format("{0:E3}", 12563.45678)
F或f
固定点
将数值转换为”-d.ddd”的形式的字符串。其中d表示0-9的数字。可以规范精确到小数点的位数。
string str = String.Format("{0:f3}", 12563.45678)
N或n
编号
数字被转换为财务书写形式:“d,ddd,ddd.dd”,千分位符号在小数点左边插入每三位数一组的各个组之间。可以规范小数点的位数。
string str = String.Format("{0:n3}", 12563789.45678)
P或p
百分比
格式化数值以百分比的形式输出,可以指定小数点的位数。
string str = String.Format("{0:P3}", 0.125696)
X或x
十六进制
将十进制整数转换为十六进制整数。
string str = String.Format("{0:X}", 150)
上面表中列出了默认格式的规范,你也可以选择自定义所需的格式。C#提供了一种自定义格式的的字符利用这些字符你可以根据自己的需求,定义所需的格式模板。
自定义数字格式
格式字符
说 明
0
利用0将格式化的字符填满
#
代表数字
。
指定小数点的位置
,
千位数分隔符
%
百分比符号
E0 E-0 E+0
科学计数符号
;
分段区隔符号
知识点
关于“;”分段区符号的使用:它能够将数值进行分段,分别指定整数、负数以及0的格式。形式如下:format(”{0:分段1;分段2;分段3}”,数值)。其中分段1用于指定格式化数值为正数的时候的形式,分段2用于指定格式化负数的时候的形式,分段3表示格式化数值为0的时候所使用的形式。
日期时间格式化
另外一种经常被格式化的数据就是日期时间数据,因为国家不同,经常会有不同的表示方式,c#专门定义了关于日期时间的字符格式规范的形式。
格式规范
说明
举例
结果
d
简短日期模式
string.Format("{0:d}",DateTime.Now)
2009-5-24
D
完整日期模式
string.Format("{0:D}",DateTime.Now)
2009年5月24日
t
简短时间模式
string.Format("{0:t}",DateTime.Now)
17:34
T
完整时间模式
string.Format("{0:T}",DateTime.Now)
17:34:21
f
完整可排序日期/时间模式(简短时间)
string.Format("{0:f}",DateTime.Now)
2009年5月24日 17:35
F
完整可排序日期/时间模式(完整时间)
string.Format("{0:F}",DateTime.Now)
2009年5月24日17:35:11
g
一般可排序日期/时间模式(简短时间)
string.Format("{0:g}",DateTime.Now)
2009-5-24 17:38
G
一般可排序日期/时间模式(完整时间)
string.Format("{0:G}",DateTime.Now)
2009-5-24 17:38:11
M或m
月日模式
string.Format("{0:M}",DateTime.Now)
5月24日
R或r
RFC1123模式
string.Format("{0:R}",DateTime.Now)
Sun,24 Mary 2009 17:40:30
GMT
s
可排序日期/时间模式;符合ISO8601
string.Format("{0:s}",DateTime.Now)
2009-05-24 T17:38:11
u
通用可排序日期/时间模式
string.Format("{0:u}",DateTime.Now)
2009-05-24 17:38:11Z
U
通用可排序日期/时间模式
string.Format("{0:U}",DateTime.Now)
2009年05月24日17:35:11
Y或y
年月模式
string.Format("{0:Y}",DateTime.Now)
2009年5月
日期时间就如同数值格式化,除了这些默认的格式化规范,也可以选择自定义格式方式。下面我们只介绍常用的格式化方式。
自定义的日期时间格式
格式规范
说明
举例
结果
dd
介于1和31之间的数字来测算当前的日期
{0:dd}
25
dddd
显示当前时间是星期几
{0:dddd}
星期日
hh
显示小时,12小时制
{0:hh}
05
HH
显示小时,24小时制
{0:HH}
17
mm
分钟
{0:mm}
01
MM
月份
{0:MM}
05
MMMM
完整的月份
{0:MMMM}
五月
ss
秒
{0:ss}
54
yy
不带世纪的年份
{0:yy}
09
yyyy
带世纪的年份
{0:yyyy}
2009
实例:String.Format(”{0:yyyy年MM月dd日}”,DateTime.Now);
- 备忘(四)字符串格式化
- Android开发笔记(四)字符串格式化
- printf 格式化 (备忘)
- C学习笔记(四)字符串和格式化输入\输出
- Python格式化字符串的四种方法
- 格式化字符串(一)
- 格式化字符串(转)
- 字符串格式化(python)
- C#格式化字符串(数字格式化)
- 备忘:JAVA数字格式化
- 格式化字符串漏洞利用 四、利用的变体
- C#正则表达式整理备忘(四)
- 字符串处理技术之格式化字符串(格式化当前日期)
- sscanf(格式化字符串输入)
- (转载)C#格式化字符串
- sscanf(格式化字符串输入)
- (一)Python字符串格式化
- Python(19):格式化字符串
- 10则哲理故事照亮你的前途
- Siebel 异常:SBL-SYJ-00152 Solution
- 智慧
- 逻辑推理
- 别再责怪80&90后
- 备忘(四)字符串格式化
- 测量block size 为8K ,自动分配的本地管理表空间的位图block一位能管理多少空间
- 不构造函数不分配内存?
- 备忘(五)正则表达式
- JavaScript运行代码框代码
- 22条经典的编程引言
- 异步调用WebServices
- VS2005 SP1安装问题 for Windows Server 2003(错误 1718,文件被数字签名策略拒绝)
- 哥写的不是代码,哥写的是寂寞.