A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Morgan 中级黑马   /  2015-7-4 10:44  /  533 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Morgan 于 2015-7-4 10:51 编辑

1.其实调用printf(Stringformat, Object... args)就相当于调用format(String format, Object... args)函数。
调用printf(Locale l, String format, Object... args) 就相当于调用format(Localel, String format, Object... args)函数。
2.格式字符串format的语法:

  • 常规类型、字符类型和数值类型的格式说明符的语法如下:
  %[argument_index$][flags][width][.precision]conversion
可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。
可选 flags 是修改输出格式的字符集。有效标志集取决于转换类型。
可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。
可选 precision 是一个非负十进制整数,通常用来限制字符数。特定行为取决于转换类型。
所需 conversion 是一个表明应该如何格式化参数的字符。给定参数的有效转换集取决于参数的数据类型。

  • 用来表示日期和时间类型的格式说明符的语法如下:
  %[argument_index$][flags][width]conversion
可选的 argument_indexflagswidth 的定义同上。
所需的 conversion 是一个由两字符组成的序列。第一个字符是't' 或 'T'。第二个字符表明所使用的格式。这些字符类似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的字符。

  • 与参数不对应的格式说明符的语法如下:
  %[flags][width]conversion
可选 flagswidth 的定义同上。
所需的 conversion 是一个表明要在输出中所插内容的字符。
  
转换
  
  
参数类别
  
  
说明
  
  
'b', 'B'
  
  
常规
  
  
如果参数 argnull,则结果为 "false"如果 arg 是一个 boolean 值或 Boolean,则结果为  String.valueOf() 返回的字符串。否则结果为"true"
  
  
'h', 'H'
  
  
常规
  
  
如果参数 argnull,则结果为 "null"。否则,结果为调用 Integer.toHexString(arg.hashCode()) 得到的结果。
  
  
's', 'S'
  
  
常规
  
  
如果参数 argnull,则结果为 "null"如果 arg 实现 Formattable,则调用  arg.formatTo。否则,结果为调用  arg.toString() 得到的结果。
  
  
'c', 'C'
  
  
字符
  
  
结果是一个 Unicode 字符
  
  
'd'
  
  
整数
  
  
结果被格式化为十进制整数
  
  
'o'
  
  
整数
  
  
结果被格式化为八进制整数
  
  
'x', 'X'
  
  
整数
  
  
结果被格式化为十六进制整数
  
  
'e', 'E'
  
  
浮点
  
  
结果被格式化为用计算机科学记数法表示的十进制数
  
  
'f'
  
  
浮点
  
  
结果被格式化为十进制数
  
  
'g', 'G'
  
  
浮点
  
  
根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。
  
  
'a', 'A'
  
  
浮点
  
  
结果被格式化为带有效位数和指数的十六进制浮点数
  
  
't', 'T'
  
  
日期/时间
  
  
日期和时间转换字符的前缀。请参阅日期/时间转换。  
  
  
'%'
  
  
百分比
  
  
结果为字面值 '%' ('\u0025')
  
  
'n'
  
  
行分隔符
  
  
结果为特定于平台的行分隔符
  
任何未明确定义为转换的字符都是非法字符,并且都被保留,以供将来扩展使用。

3.下面举一个例子
System.out.format("%1$3d",var);
%:是标志符。
1$:表示转换逗号后面第一个参数。
3:表示最小宽度是3.
d:表示结果被格式化为十进制整数。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马