您好,欢迎访问三七文档
当前位置:首页 > 中学教育 > 初中教育 > Stringformat用法
名称说明Format(String,Object)将指定的String中的格式项替换为指定的Object实例的值的文本等效项。Format(String,array[]()[])将指定String中的格式项替换为指定数组中相应Object实例的值的文本等效项。Format(IFormatProvider,String,array[]()[])将指定String中的格式项替换为指定数组中相应Object实例的值的文本等效项。指定的参数提供区域性特定的格式设置信息。Format(String,Object,Object)将指定的String中的格式项替换为两个指定的Object实例的值的文本等效项。Format(String,Object,Object,Object)将指定的String中的格式项替换为三个指定的Object实例的值的文本等效项。多个参数intm[]=newint{a,b,c,d};string.format({0}{1}{2},m);一个参数privateconststring_extraClause=ANDC_INTERNSHIPORG_INTERNSHIPID={0};//将MyCrypt.Decrypt(Request[id])作为_extraClause的参数if(Request[id]!=null&&Request[id]!=string.Empty){mExtraMessage=string.Format(_extraClause,MyCrypt.Decrypt(Request[id]));}2、格式化数值结果表字符说明示例输出C货币string.Format({0:C3},2)$2.000D十进制string.Format({0:D3},2)002E科学计数法1.20E+0011.20E+001G常规string.Format({0:G},2)2N用分号隔开的数字string.Format({0:N},250000)250,000.00X十六进制string.Format({0:X000},12)Cstring.Format({0:000.000},12.2)012.200string.format用来格式化字符串(按指定的规则连接字符串或输出其他变量并返回新的字符串)。string.format(fm,...);第一个参数用fm表示输出的格式,每个%符号后面是一个格式化表达式,每个格式化表达式按顺序对应后面的参数。所以用了N个格式化表达式,就必须在后面添加N个参数。下面是一个简单的例子:int=123;str=字符串--下面的%s对应参数str,%i对应参数intstr=string.format(这是字符串:'%s'这是数字值%i,str,int);win.messageBox(str);--%05i表示格式化为至少五位的数字,不足在前面补0str=string.format(%05i,int);win.messageBox(str);格式化表达式:%[零个或多个标志][最小字段宽度][精度][修改符]格式码注意:[]方括号表示可选参数1、格式码代码c参数数字值(number)含义参数被裁剪为8位字节码并作为字符进行打印。代码i,d参数数字值(number)含义参数作为一个十进制整数打印。如果给出了精度而且值的位数小于精度位数,前面就用0填充。代码u,o,x,X参数数字值(number)含义参数作为一个无符号数字值打印,u使用十进制,o使用八进制,x或X使用十六进制,两者的区别是x约定使用abcdef,而X约定使用ABCDEF。代码e,E参数数字值(number)含义参数根据指数形式打印。例如,6.023000e23是使用代码e,6.023000E23是使用代码E。小数点后面的位数由精度字段决定,缺省值是6。代码f参数数字值(number)含义参数按照的常规浮点格式打印。精度字段决定小数点后面的位数,缺省值是6。代码g,G参数数字值(number)含义参数以%f或%e(如G则%E)的格式打印,取决于它的值。如果指数大于等于-4但小于精度字段就使用%f格式,否则使用指数格式。代码s参数字符串值(string)含义打印一个字符串。代码q参数(无)含义打印一个字符串,并将字符串置于一对引号中,如果字符串中包含引号换行等自动添加转义符。如果要读取一个字符串传为脚本代码。为避免用户恶意注入引号等特殊字符,可以使用%q进行格式化。代码%参数(无)含义取消%转义打印一个%字符,即用%%表示本来的%。2、标志标志-含义值在字段中做对齐,缺省情况下是右对齐。标志0含义当数值为右对齐时,缺省情况下是使用空格填充值左边未使用的列。这个标志表示用零填充,它可用于d,i,u,o,x,X,e,E,f,g和G代码。使用d,i,u,o,x和X代码时,如果给出了精度字段,零标志就被忽略。如果格式代码中出现了负号,零标志也没有效果。标志+含义当用于一个格式化某个有符号值代码时,如果值非负,正号标志就会给它加上一个正号。如果该值为负,就像往常一样显示一个负号。在缺省情况下,正号并不会显示。标志空格含义只用于转换有符号值的代码。当值非负时,这个标志把一个空格添加到它开始的位置。注意这个标志和正号标志是相互排斥的,如果两个同时给出,空格标志便被忽略。标志#含义选择某些代码的另一种转换形式:用于...#标志...o保证产生的值以一个零开头x,X在非零值前面加0x前缀(%X则为0X)e,E,f确保结果始终包含一个小数点,即使它后面没有数字g,G和上面的e,E和f代码相同。另外,缀尾的0并不从小数中去除3、字段宽度字段宽度是一个十进制整数,用于指定将出现在结果中的最小字符数。如果值的字符数少于字段宽度,就对它进行填充以增加长度。4、精度精度以一个句点开头,后面跟一个可选的十进制数。如果未给出整数,精度的缺省值为零。对于d,i,u,o,x和X类型的转换,精度字段指定将出现在结果中的最小的数字个数并覆盖零标志。如果转换后的值的位数小于宽度,就在它的前面插入零。如果值为零且精度也为零,则转换结果就不会产生数字。对于e,E和f类型的转换,精度决定将出现在小数点之后的数字位数。对于g和G类型的转换,它指定将出现在结果中的最大有效位数。当使用s类型的转换时,精度指定将被转换的最多的字符数。如果用于表示字段宽度和/或精度的十进制整数由一个星号代替,那么printf的下一个参数(必须是个整数)就提供宽度和(或)精度。因此,这些值可以通过计算获得而不必预先指定。5、示例格式代码AABCABCDEFGH%sAABCABCDEFGH%5s####A##ABCABCDEFGH%.5sAABCABCDE%5.5s####A##ABCABCDE%-5sA####ABC##ABCDEFGH格式代码1-1212345123456789%d1-1212345123456789%6d#####1###-12#12345123456789%.4d0001-001212345123456789%6.4d##0001#-0012#12345123456789%-4d1####-12#12345123456789%04d0001-01212345123456789%+d+1-12+12345+123456789格式代码1.01.0001234512345.6789%f1.0000000.0100000.00012312345.678900%10.2d######1.00#####0.01######0.00##12345.67%e1.000000e+001.000000e-021.234500e-041.234568e+04%.4e1.0000e+001.0000e-021.2345e-041.2346e+04%g10.010.0001234512345.7格式代码6.023e23%f60229999999999975882752.000000%10.2e60229999999999975882752.00%e6.023000e+23%.4e6.0230e+23%g6.023e+23用上面的格式化函数可以轻松实现数字的进制转换--数字转换为二进制字符串str=string.format(%b,23);--二进制字符串转换为数字n=tonumber(str,2)--数字转换为八进制字符串str=string.format(%o,23);--八进制字符串转换为数字n=tonumber(str,8)--数字转换为十六进制字符串str=string.format(%x,23);--十六进制字符串转换为数字n=tonumber(str,16)四、格式化时间模拟精灵v7.10格式化时间的函数有string.time;string.ftime;os.data;os.time等函数。os.time是从table生成数字时间值string.time是从字符串生成数字时间值。os.data与string.ftime功能相同从时间值反过来生成字符串或时间。这里我们介绍string.time函数、string.ftime函数,下面是使用示例:--从字符串创建时间值t=string.time(2006/6/60:0:0,%Y/%m/%d%H:%M:%S)--从时间值创建字符串str=string.ftime(%Y/%m/%d%H:%M:%S,t)格式化语法(在很多编程语言中都适用的语法)%a-当前区域星期几的简写%A-当前区域星期几的全称%b-当前区域月份的简写%B-当前区域月份的全称%c-当前区域首选的日期时间表达%C-世纪值(年份除以100后取整,范围从00到99)%d-月份中的第几天,十进制数字(范围从01到31)%D-和%m/%d/%y一样%e-月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从'1'到'31')%g-和%G一样,但是没有世纪%G-4位数的年份,符合ISO星期数(参见%V)。和%V的格式和值一样,只除了如果ISO星期数属于前一年或者后一年,则使用那一年。%h-和%b一样%H-24小时制的十进制小时数(范围从00到23)%I-12小时制的十进制小时数(范围从00到12)%j-年份中的第几天,十进制数(范围从001到366)%m-十进制月份(范围从01到12)%M-十进制分钟数%n-换行符%p-根据给定的时间值为`am'或`pm',或者当前区域设置中的相应字符串%r-用a.m.和p.m.符号的时间%R-24小时符号的时间%S-十进制秒数%t-制表符%T-当前时间,和%H:%M:%S一样%u-星期几的十进制数表达[1,7],1表示星期一%U-本年的第几周,从第一周的第一个星期天作为第一天开始%V-本年第几周的ISO8601:1988格式,范围从01到53,第1周是本年第一个至少还有4天的星期,星期一作为每周的第一天。(用%G或者%g作为指定时间戳相应周数的年份组成。)%W-本年的第几周数,从第一周的第一个星期一作为第一天开始%w-星期中的第几天,星期天为0%x-当前区域首选的时间表示法,不包括时间%X-当前区域首选的时间表示法,不包括日期%y-没有世纪数的十进制年份(范围从00到99)%Y-包括世纪数的十进制年份%Z-时区名或缩写%%-文字上的`%'字符
本文标题:Stringformat用法
链接地址:https://www.777doc.com/doc-2861041 .html