??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品福利av,久久精品99久久无色码中文字幕,亚洲成人av一区二区http://www.aygfsteel.com/riacya/zh-cnWed, 18 Jun 2025 12:41:58 GMTWed, 18 Jun 2025 12:41:58 GMT60java字符串格式化http://www.aygfsteel.com/riacya/archive/2010/08/19/329377.htmlxyanxyanThu, 19 Aug 2010 08:35:00 GMThttp://www.aygfsteel.com/riacya/archive/2010/08/19/329377.htmlhttp://www.aygfsteel.com/riacya/comments/329377.htmlhttp://www.aygfsteel.com/riacya/archive/2010/08/19/329377.html#Feedback0http://www.aygfsteel.com/riacya/comments/commentRss/329377.htmlhttp://www.aygfsteel.com/riacya/services/trackbacks/329377.htmlL数字{化ؓ定长字符串的ҎQ最l发现用StringcȝFormat可以实现
CZQ?br /> int id = 0;
String id2 = String .format("%010d", id);  //前导|零Q?0位长度的字符?br />
函数原型Q?tt>

format
public static String format(String format,
                            Object... args)
使用指定的格式字W串和参数返回一个格式化字符丌Ӏ?
始终使用 Locale.getDefault() q回的语a环境?


参数Q?/strong>
format - 格式字符?
args - 格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参敎ͼ则忽略这些额外的参数。参数的数目是可变的Q可以ؓ 0。参数的最大数目受 Java Virtual Machine Specification 所定义?Java 数组最大维度的限制。有?null 参数的行Z赖于转换?
q回Q?/strong>
一个格式化字符?
抛出Q?/strong>
IllegalFormatException - 如果格式字符串中包含非法语法、与l定的参C兼容的格式说明符Q格式字W串l定的参C够,或者存在其他非法条件。有x有可能的格式化错误的规范Q请参阅 formatter c规范的详细信息 一节?
NullPointerException - 如果 format ?null


 

一、第一个参数是格式化字W串Q其语法Q?br />
1、常规类型、字W类型和数值类型的格式说明W的语法如下Q?
   %[argument_index$][flags][width][.precision]conversion

*可选的 argument_index 是一个十q制整数Q用于表明参数在参数列表中的位置。第一个参数由 "1$" 引用Q第二个参数?"2$" 引用Q依此类推?

*可?flags 是修改输出格式的字符集。有效标志集取决于{换类型?

*可?width 是一个非负十q制整数Q表明要向输Z写入的最字W数?

*可?precision 是一个非负十q制整数Q通常用来限制字符数。特定行为取决于转换cd?

*所需 conversion 是一个表明应该如何格式化参数的字W。给定参数的有效转换集取决于参数的数据类型?

2、用来表C日期和旉cd

   %[argument_index$][flags][width]conversion 

 
 *可选的 argument_index、flags ?width 的定义同上?

*所需?conversion 是一个由两字W组成的序列。第一个字W是 't' ?'T'。第二个字符表明所使用的格式。这些字W类g但不完全{同于那些由 GNU date ?POSIX strftime(3c) 定义的字W?

3、与参数不对应的格式说明W的语法如下Q?

   %[flags][width]conversion


 可?flags ?width 的定义同上?

所需?conversion 是一个表明要在输Z所插内容的字符?/p>
二、语法中个元素对应的参数
1、标志(flags)

下表ȝ了受支持的标志?em>y 表示该标志受指示参数cd支持?
标志 常规 字符 整数 日期/旉 说明
'-' y y y y y l果是左对齐的?
'#' y1 - y3 y - l果应该使用依赖于{换类型的替换形式
'+' - - y4 y - l果L包括一个符?
'  ' - - y4 y - 对于正|l果中将包括一个前导空?
'0' - - y y - l果用零来填充
',' - - y2 y5 - l果包括特定于语言环境?a href="mk:@MSITStore:D:\1目\参考文档\JDK_API_1_6_zh_CN.CHM::/java/text/DecimalFormatSymbols.html#getGroupingSeparator()">l分隔符
'(' - - y4 y5 - l果是用圆括号括v来的负数

1 取决?Formattable 的定义?

2 只适用?'d' 转换?

3 只适用?'o'?tt>'x' ?'X' 转换?

4 ?BigInteger 应用 'd'?tt>'o'?tt>'x' ?'X' 转换Ӟ或者对 byte ?Byte?tt>short ?Short?tt>int ?Integer?tt>long ?Long 分别应用 'd' 转换旉用?

5 只适用?'e'?tt>'E'?tt>'f'?tt>'g' ?'G' 转换?

M未显式定义ؓ标志的字W都是非法字W,q且都被保留Q以供扩展用?


**String id2 = String .format("%010d", id); 其中引号内第一?便是用零填充Q?br />
2、宽度(widthQ?

宽度是将向输Z写入的最字W数。对于行分隔W{换,不适用宽度Q如果提供宽度,则会抛出异常?br />
3、精度(precisionQ?br />

对于常规参数cdQ精度是向输出中写入的最多字W数?

对于点转换 'e'?tt>'E' ?'f'Q精度是数点分隔符后的位数。如果{换是 'g' ?'G'Q那么精度是舍入计算后所得数值的所有位数。如果{换是 'a' ?'A'Q则不必指定_ֺ?

对于字符、整数和日期/旉参数cd转换Q以及百分比和行分隔W{换,_ֺ是不适用的;如果提供_ֺQ则会抛出异常?/p>



4、{换(conversionQ?br />

下表ȝ了受支持的{换。由大写字符Q如 'B'?tt>'H'?tt>'S'?tt>'C'?tt>'X'?tt>'E'?tt>'G'?tt>'A' ?'T'Q表C的转换与由相应的小写字W的转换{同Q根据流行的 Locale 规则结果{换ؓ大写形式除外。后者等同于 String.toUpperCase() 的以下调?

    out.toUpperCase() 

转换 参数cd 说明
'b', 'B' 常规 如果参数 arg ?nullQ则l果?"false"。如?arg 是一?boolean 值或 BooleanQ则l果?String.valueOf() q回的字W串。否则结果ؓ "true"?
'h', 'H' 常规 如果参数 arg ?nullQ则l果?"null"。否则,l果?Integer.toHexString(arg.hashCode()) 得到的结果?
's', 'S' 常规 如果参数 arg ?nullQ则l果?"null"。如?arg 实现 FormattableQ则调用 arg.formatTo。否则,l果?arg.toString() 得到的结果?
'c', 'C' 字符 l果是一?Unicode 字符
'd' 整数 l果被格式化为十q制整数
'o' 整数 l果被格式化为八q制整数
'x', 'X' 整数 l果被格式化为十六进制整?
'e', 'E' l果被格式化为用计算机科学记数法表示的十q制?
'f' l果被格式化为十q制?
'g', 'G' Ҏ_ֺ和舍入运后的|使用计算机科学记数Ş式或十进制格式对l果q行格式化?
'a', 'A' l果被格式化为带有效位数和指数的十六q制点?
't', 'T' 日期/旉 日期和时间{换字W的前缀。请参阅日期/旉转换?
'%' 癑ֈ? l果为字面?'%' ('\u0025')
'n' 行分隔符 l果为特定于q_的行分隔W?

M未明定义ؓ转换的字W都是非法字W,q且都被保留Q以供将来扩展?br />
此外q有日期格式的{换,在此不列出?br /> Q以上来源于JDK1.6Q?/p>

xyan 2010-08-19 16:35 发表评论
]]>
վ֩ģ壺 | | | ˮ| ¡| | | Ԫ| | | ˼| ̫| | ±| | | ɽ| | | | Ž| ־| ׯ| | | ̨| Ҧ| Ͳ| | ̨| | ֳ| | | | | ƽ| | ˳| ¸| ʲ|